diff options
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | arm9/asm/filesystem.s | 1546 | ||||
-rw-r--r-- | arm9/global.inc | 4 | ||||
-rw-r--r-- | arm9/lib/include/FS_file.h | 54 | ||||
-rw-r--r-- | arm9/modules/04/asm/arm_04.s | 1229 | ||||
-rw-r--r-- | arm9/modules/06/asm/module_06.s | 4 | ||||
-rw-r--r-- | arm9/src/filesystem.c | 415 |
7 files changed, 1595 insertions, 1658 deletions
@@ -194,6 +194,7 @@ TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%) TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE)) export LM_LICENSE_FILE := $(TOOLS_DIR)/mwccarm/license.dat +export MWCIncludes := arm9/lib/include ######################### Targets ########################### diff --git a/arm9/asm/filesystem.s b/arm9/asm/filesystem.s deleted file mode 100644 index ad7e20ca..00000000 --- a/arm9/asm/filesystem.s +++ /dev/null @@ -1,1546 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .data - .balign 4 - .global UNK_0210479C -UNK_0210479C: ; 0x0210479C - .asciz "arc/tv.narc" - - .balign 4 - .global UNK_021047A8 -UNK_021047A8: ; 0x021047A8 - .asciz "arc/ppark.narc" - - .balign 4 - .global UNK_021047B8 -UNK_021047B8: ; 0x021047B8 - .asciz "data/slot.narc" - - .balign 4 - .global UNK_021047C8 -UNK_021047C8: ; 0x021047C8 - .asciz "graphic/box.narc" - - .balign 4 - .global UNK_021047DC -UNK_021047DC: ; 0x021047DC - .asciz "data/namein.narc" - - .balign 4 - .global UNK_021047F0 -UNK_021047F0: ; 0x021047F0 - .asciz "msgdata/msg.narc" - - .balign 4 - .global UNK_02104804 -UNK_02104804: ; 0x02104804 - .asciz "data/ug_anim.narc" - - .balign 4 - .global UNK_02104818 -UNK_02104818: ; 0x02104818 - .asciz "data/ug_trap.narc" - - .balign 4 - .global UNK_0210482C -UNK_0210482C: ; 0x0210482C - .asciz "graphic/font.narc" - - .balign 4 - .global UNK_02104840 -UNK_02104840: ; 0x02104840 - .asciz "arc/bm_anime.narc" - - .balign 4, 0 - .global UNK_02104854 -UNK_02104854: ; 0x02104854 - .asciz "wazaeffect/we.arc" - - .balign 4, 0 - .global UNK_02104868 -UNK_02104868: ; 0x02104868 - .asciz "graphic/pmsi.narc" - - .balign 4, 0 - .global UNK_0210487C -UNK_0210487C: ; 0x0210487C - .asciz "data/ug_parts.narc" - - .balign 4, 0 - .global UNK_02104890 -UNK_02104890: ; 0x02104890 - .asciz "arc/ship_demo.narc" - - .balign 4, 0 - .global UNK_021048A4 -UNK_021048A4: ; 0x021048A4 - .asciz "data/wifinote.narc" - - .balign 4, 0 - .global UNK_021048B8 -UNK_021048B8: ; 0x021048B8 - .asciz "graphic/btower.narc" - - .balign 4, 0 - .global UNK_021048CC -UNK_021048CC: ; 0x021048CC - .asciz "data/ug_fossil.narc" - - .balign 4, 0 - .global UNK_021048E0 -UNK_021048E0: ; 0x021048E0 - .asciz "graphic/ending.narc" - - .balign 4, 0 - .global UNK_021048F4 -UNK_021048F4: ; 0x021048F4 - .asciz "arc/encdata_ex.narc" - - .balign 4, 0 - .global UNK_02104908 -UNK_02104908: ; 0x02104908 - .asciz "graphic/mysign.narc" - - .balign 4, 0 - .global UNK_0210491C -UNK_0210491C: ; 0x0210491C - .asciz "graphic/record.narc" - - .balign 4, 0 - .global UNK_02104930 -UNK_02104930: ; 0x02104930 - .asciz "data/tradelist.narc" - - .balign 4, 0 - .global UNK_02104944 -UNK_02104944: ; 0x02104944 - .asciz "graphic/oekaki.narc" - - .balign 4, 0 - .global UNK_02104958 -UNK_02104958: ; 0x02104958 - .asciz "graphic/bag_gra.narc" - - .balign 4, 0 - .global UNK_02104970 -UNK_02104970: ; 0x02104970 - .asciz "graphic/fontoam.narc" - - .balign 4, 0 - .global UNK_02104988 -UNK_02104988: ; 0x02104988 - .asciz "graphic/mystery.narc" - - .balign 4, 0 - .global UNK_021049A0 -UNK_021049A0: ; 0x021049A0 - .asciz "graphic/opening.narc" - - .balign 4, 0 - .global UNK_021049B8 -UNK_021049B8: ; 0x021049B8 - .asciz "graphic/pst_gra.narc" - - .balign 4, 0 - .global UNK_021049D0 -UNK_021049D0: ; 0x021049D0 - .asciz "graphic/poketch.narc" - - .balign 4, 0 - .global UNK_021049E8 -UNK_021049E8: ; 0x021049E8 - .asciz "graphic/poruact.narc" - - .balign 4, 0 - .global UNK_02104A00 -UNK_02104A00: ; 0x02104A00 - .asciz "graphic/ranking.narc" - - .balign 4, 0 - .global UNK_02104A18 -UNK_02104A18: ; 0x02104A18 - .asciz "graphic/porudemo.narc" - - .balign 4, 0 - .global UNK_02104A30 -UNK_02104A30: ; 0x02104A30 - .asciz "graphic/poru_gra.narc" - - .balign 4, 0 - .global UNK_02104A48 -UNK_02104A48: ; 0x02104A48 - .asciz "data/field_cutin.narc" - - .balign 4, 0 - .global UNK_02104A60 -UNK_02104A60: ; 0x02104A60 - .asciz "data/demo_climax.narc" - - .balign 4, 0 - .global UNK_02104A78 -UNK_02104A78: ; 0x02104A78 - .asciz "graphic/tmap_gra.narc" - - .balign 4, 0 - .global UNK_02104A90 -UNK_02104A90: ; 0x02104A90 - .asciz "demo/intro/intro.narc" - - .balign 4, 0 - .global UNK_02104AA8 -UNK_02104AA8: ; 0x02104AA8 - .asciz "data/weather_sys.narc" - - .balign 4, 0 - .global UNK_02104AC0 -UNK_02104AC0: ; 0x02104AC0 - .asciz "graphic/menu_gra.narc" - - .balign 4, 0 - .global UNK_02104AD8 -UNK_02104AD8: ; 0x02104AD8 - .asciz "graphic/nutmixer.narc" - - .balign 4, 0 - .global UNK_02104AF0 -UNK_02104AF0: ; 0x02104AF0 - .asciz "graphic/winframe.narc" - - .balign 4, 0 - .global UNK_02104B08 -UNK_02104B08: ; 0x02104B08 - .asciz "graphic/shop_gra.narc" - - .balign 4, 0 - .global UNK_02104B20 -UNK_02104B20: ; 0x02104B20 - .asciz "graphic/ntag_gra.narc" - - .balign 4, 0 - .global UNK_02104B38 -UNK_02104B38: ; 0x02104B38 - .asciz "graphic/mail_gra.narc" - - .balign 4, 0 - .global UNK_02104B50 -UNK_02104B50: ; 0x02104B50 - .asciz "graphic/imageclip.narc" - - .balign 4, 0 - .global UNK_02104B68 -UNK_02104B68: ; 0x02104B68 - .asciz "data/underg_radar.narc" - - .balign 4, 0 - .global UNK_02104B80 -UNK_02104B80: ; 0x02104B80 - .asciz "data/wifip2pmatch.narc" - - .balign 4, 0 - .global UNK_02104B98 -UNK_02104B98: ; 0x02104B98 - .asciz "graphic/unionroom.narc" - - .balign 4, 0 - .global UNK_02104BB0 -UNK_02104BB0: ; 0x02104BB0 - .asciz "arc/bm_anime_list.narc" - - .balign 4, 0 - .global UNK_02104BC8 -UNK_02104BC8: ; 0x02104BC8 - .asciz "graphic/dendou_pc.narc" - - .balign 4, 0 - .global UNK_02104BE0 -UNK_02104BE0: ; 0x02104BE0 - .asciz "wazaeffect/we_sub.narc" - - .balign 4, 0 - .global UNK_02104BF8 -UNK_02104BF8: ; 0x02104BF8 - .asciz "graphic/plist_gra.narc" - - .balign 4, 0 - .global UNK_02104C10 -UNK_02104C10: ; 0x02104C10 - .asciz "graphic/fld_comact.narc" - - .balign 4, 0 - .global UNK_02104C28 -UNK_02104C28: ; 0x02104C28 - .asciz "graphic/demo_trade.narc" - - .balign 4, 0 - .global UNK_02104C40 -UNK_02104C40: ; 0x02104C40 - .asciz "pokeanime/poke_anm.narc" - - .balign 4, 0 - .global UNK_02104C58 -UNK_02104C58: ; 0x02104C58 - .asciz "graphic/worldtrade.narc" - - .balign 4, 0 - .global UNK_02104C70 -UNK_02104C70: ; 0x02104C70 - .asciz "data/mmodel/fldeff.narc" - - .balign 4, 0 - .global UNK_02104C88 -UNK_02104C88: ; 0x02104C88 - .asciz "demo/title/op_demo.narc" - - .balign 4, 0 - .global UNK_02104CA0 -UNK_02104CA0: ; 0x02104CA0 - .asciz "poketool/pokezukan.narc" - - .balign 4, 0 - .global UNK_02104CB8 -UNK_02104CB8: ; 0x02104CB8 - .asciz "graphic/config_gra.narc" - - .balign 4, 0 - .global UNK_02104CD0 -UNK_02104CD0: ; 0x02104CD0 - .asciz "data/mmodel/mmodel.narc" - - .balign 4, 0 - .global UNK_02104CE8 -UNK_02104CE8: ; 0x02104CE8 - .asciz "graphic/f_note_gra.narc" - - .balign 4, 0 - .global UNK_02104D00 -UNK_02104D00: ; 0x02104D00 - .asciz "poketool/shinzukan.narc" - - .balign 4, 0 - .global UNK_02104D18 -UNK_02104D18: ; 0x02104D18 - .asciz "battle/skill/be_seq.narc" - - .balign 4, 0 - .global UNK_02104D34 -UNK_02104D34: ; 0x02104D34 - .asciz "graphic/field_board.narc" - - .balign 4, 0 - .global UNK_02104D50 -UNK_02104D50: ; 0x02104D50 - .asciz "demo/intro/intro_tv.narc" - - .balign 4, 0 - .global UNK_02104D6C -UNK_02104D6C: ; 0x02104D6C - .asciz "graphic/dendou_demo.narc" - - .balign 4, 0 - .global UNK_02104D88 -UNK_02104D88: ; 0x02104D88 - .asciz "battle/b_tower/btdtr.narc" - - .balign 4, 0 - .global UNK_02104DA4 -UNK_02104DA4: ; 0x02104DA4 - .asciz "graphic/hiden_effect.narc" - - .balign 4, 0 - .global UNK_02104DC0 -UNK_02104DC0: ; 0x02104DC0 - .asciz "demo/title/titledemo.narc" - - .balign 4, 0 - .global UNK_02104DDC -UNK_02104DDC: ; 0x02104DDC - .asciz "graphic/trainer_case.narc" - - .balign 4, 0 - .global UNK_02104DF8 -UNK_02104DF8: ; 0x02104DF8 - .asciz "battle/b_tower/btdpm.narc" - - .balign 4, 0 - .global UNK_02104E14 -UNK_02104E14: ; 0x02104E14 - .asciz "poketool/trmsg/trtbl.narc" - - .balign 4, 0 - .global UNK_02104E30 -UNK_02104E30: ; 0x02104E30 - .asciz "battle/skill/sub_seq.narc" - - .balign 4, 0 - .global UNK_02104E4C -UNK_02104E4C: ; 0x02104E4C - .asciz "poketool/trgra/trbgra.narc" - - .balign 4, 0 - .global UNK_02104E68 -UNK_02104E68: ; 0x02104E68 - .asciz "poketool/personal/evo.narc" - - .balign 4, 0 - .global UNK_02104E84 -UNK_02104E84: ; 0x02104E84 - .asciz "poketool/trgra/trfgra.narc" - - .balign 4, 0 - .global UNK_02104EA0 -UNK_02104EA0: ; 0x02104EA0 - .asciz "battle/skill/waza_seq.narc" - - .balign 4, 0 - .global UNK_02104EBC -UNK_02104EBC: ; 0x02104EBC - .asciz "graphic/ev_pokeselect.narc" - - .balign 4, 0 - .global UNK_02104ED8 -UNK_02104ED8: ; 0x02104ED8 - .asciz "demo/syoujyou/syoujyou.narc" - - .balign 4, 0 - .global UNK_02104EF4 -UNK_02104EF4: ; 0x02104EF4 - .asciz "demo/egg/data/egg_data.narc" - - .balign 4, 0 - .global UNK_02104F10 -UNK_02104F10: ; 0x02104F10 - .asciz "battle/tr_ai/tr_ai_seq.narc" - - .balign 4, 0 - .global UNK_02104F2C -UNK_02104F2C: ; 0x02104F2C - .asciz "battle/graphic/batt_bg.narc" - - .balign 4, 0 - .global UNK_02104F48 -UNK_02104F48: ; 0x02104F48 - .asciz "poketool/waza/waza_tbl.narc" - - .balign 4, 0 - .global UNK_02104F64 -UNK_02104F64: ; 0x02104F64 - .asciz "graphic/waza_oshie_gra.narc" - - .balign 4, 0 - .global UNK_02104F80 -UNK_02104F80: ; 0x02104F80 - .asciz "battle/graphic/batt_obj.narc" - - .balign 4, 0 - .global UNK_02104FA0 -UNK_02104FA0: ; 0x02104FA0 - .asciz "poketool/personal/wotbl.narc" - - .balign 4, 0 - .global UNK_02104FC0 -UNK_02104FC0: ; 0x02104FC0 - .asciz "poketool/pokegra/height.narc" - - .balign 4, 0 - .global UNK_02104FE0 -UNK_02104FE0: ; 0x02104FE0 - .asciz "poketool/trainer/trdata.narc" - - .balign 4, 0 - .global UNK_02105000 -UNK_02105000: ; 0x02105000 - .asciz "poketool/trainer/trpoke.narc" - - .balign 4, 0 - .global UNK_02105020 -UNK_02105020: ; 0x02105020 - .asciz "poketool/trmsg/trtblofs.narc" - - .balign 4, 0 - .global UNK_02105040 -UNK_02105040: ; 0x02105040 - .asciz "graphic/touch_subwindow.narc" - - .balign 4, 0 - .global UNK_02105060 -UNK_02105060: ; 0x02105060 - .asciz "resource/eng/zukan/zukan.narc" - - .balign 4, 0 - .global UNK_02105080 -UNK_02105080: ; 0x02105080 - .asciz "poketool/pokegra/pokegra.narc" - - .balign 4, 0 - .global UNK_021050A0 -UNK_021050A0: ; 0x021050A0 - .asciz "battle/graphic/b_bag_gra.narc" - - .balign 4, 0 - .global UNK_021050C0 -UNK_021050C0: ; 0x021050C0 - .asciz "msgdata/scenario/scr_msg.narc" - - .balign 4, 0 - .global UNK_021050E0 -UNK_021050E0: ; 0x021050E0 - .asciz "poketool/pokeanm/pokeanm.narc" - - .balign 4, 0 - .global UNK_02105100 -UNK_02105100: ; 0x02105100 - .asciz "contest/data/contest_data.narc" - - .balign 4, 0 - .global UNK_02105120 -UNK_02105120: ; 0x02105120 - .asciz "poketool/pokegra/height_o.narc" - - .balign 4, 0 - .global UNK_02105140 -UNK_02105140: ; 0x02105140 - .asciz "data/ugeffect_obj_graphic.narc" - - .balign 4, 0 - .global UNK_02105160 -UNK_02105160: ; 0x02105160 - .asciz "particledata/particledata.narc" - - .balign 4, 0 - .global UNK_02105180 -UNK_02105180: ; 0x02105180 - .asciz "poketool/personal/growtbl.narc" - - .balign 4, 0 - .global UNK_021051A0 -UNK_021051A0: ; 0x021051A0 - .asciz "poketool/pokegra/otherpoke.narc" - - .balign 4, 0 - .global UNK_021051C0 -UNK_021051C0: ; 0x021051C0 - .asciz "contest/graphic/contest_bg.narc" - - .balign 4, 0 - .global UNK_021051E0 -UNK_021051E0: ; 0x021051E0 - .asciz "battle/graphic/vs_demo_gra.narc" - - .balign 4, 0 - .global UNK_02105200 -UNK_02105200: ; 0x02105200 - .asciz "poketool/pokegra/poke_yofs.narc" - - .balign 4, 0 - .global UNK_02105220 -UNK_02105220: ; 0x02105220 - .asciz "poketool/pokefoot/pokefoot.narc" - - .balign 4, 0 - .global UNK_02105240 -UNK_02105240: ; 0x02105240 - .asciz "battle/graphic/b_plist_gra.narc" - - .balign 4, 0 - .global UNK_02105260 -UNK_02105260: ; 0x02105260 - .asciz "poketool/personal/personal.narc" - - .balign 4, 0 - .global UNK_02105280 -UNK_02105280: ; 0x02105280 - .asciz "poketool/icongra/poke_icon.narc" - - .balign 4, 0 - .global UNK_021052A0 -UNK_021052A0: ; 0x021052A0 - .asciz "contest/graphic/contest_obj.narc" - - .balign 4, 0 - .global UNK_021052C4 -UNK_021052C4: ; 0x021052C4 - .asciz "itemtool/itemdata/nuts_data.narc" - - .balign 4, 0 - .global UNK_021052E8 -UNK_021052E8: ; 0x021052E8 - .asciz "graphic/field_encounteffect.narc" - - .balign 4, 0 - .global UNK_0210530C -UNK_0210530C: ; 0x0210530C - .asciz "itemtool/itemdata/item_data.narc" - - .balign 4, 0 - .global UNK_02105330 -UNK_02105330: ; 0x02105330 - .asciz "itemtool/itemdata/item_icon.narc" - - .balign 4, 0 - .global UNK_02105354 -UNK_02105354: ; 0x02105354 - .asciz "fielddata/areadata/area_data.narc" - - .balign 4, 0 - .global UNK_02105378 -UNK_02105378: ; 0x02105378 - .asciz "poketool/pokegra/poke_shadow.narc" - - .balign 4, 0 - .global UNK_0210539C -UNK_0210539C: ; 0x0210539C - .asciz "wazaeffect/effectclact/wechar.narc" - - .balign 4, 0 - .global UNK_021053C0 -UNK_021053C0: ; 0x021053C0 - .asciz "wazaeffect/effectclact/wepltt.narc" - - .balign 4, 0 - .global UNK_021053E4 -UNK_021053E4: ; 0x021053E4 - .asciz "wazaeffect/effectclact/wecell.narc" - - .balign 4, 0 - .global UNK_02105408 -UNK_02105408: ; 0x02105408 - .asciz "fielddata/mapmatrix/map_matrix.narc" - - .balign 4, 0 - .global UNK_0210542C -UNK_0210542C: ; 0x0210542C - .asciz "wazaeffect/effectclact/wecellanm.narc" - - .balign 4, 0 - .global UNK_02105454 -UNK_02105454: ; 0x02105454 - .asciz "fielddata/encountdata/d_enc_data.narc" - - .balign 4, 0 - .global UNK_0210547C -UNK_0210547C: ; 0x0210547C - .asciz "poketool/pokegra/poke_shadow_ofx.narc" - - .balign 4, 0 - .global UNK_021054A4 -UNK_021054A4: ; 0x021054A4 - .asciz "fielddata/encountdata/p_enc_data.narc" - - .balign 4, 0 - .global UNK_021054CC -UNK_021054CC: ; 0x021054CC - .asciz "fielddata/script/scr_seq_release.narc" - - .balign 4, 0 - .global UNK_021054F4 -UNK_021054F4: ; 0x021054F4 - .asciz "fielddata/build_model/build_model.narc" - - .balign 4, 0 - .global UNK_0210551C -UNK_0210551C: ; 0x0210551C - .asciz "fielddata/mm_list/move_model_list.narc" - - .balign 4, 0 - .global UNK_02105544 -UNK_02105544: ; 0x02105544 - .asciz "application/wifi_earth/wifi_earth.narc" - - .balign 4, 0 - .global UNK_0210556C -UNK_0210556C: ; 0x0210556C - .asciz "fielddata/pokemon_trade/fld_trade.narc" - - .balign 4, 0 - .global UNK_02105594 -UNK_02105594: ; 0x02105594 - .asciz "wazaeffect/pt_debug/debug_particle.narc" - - .balign 4, 0 - .global UNK_021055BC -UNK_021055BC: ; 0x021055BC - .asciz "wazaeffect/effectdata/waza_particle.narc" - - .balign 4, 0 - .global UNK_021055E8 -UNK_021055E8: ; 0x021055E8 - .asciz "wazaeffect/effectdata/ball_particle.narc" - - .balign 4, 0 - .global UNK_02105614 -UNK_02105614: ; 0x02105614 - .asciz "application/custom_ball/data/cb_data.narc" - - .balign 4, 0 - .global UNK_02105640 -UNK_02105640: ; 0x02105640 - .asciz "fielddata/land_data/land_data_release.narc" - - .balign 4, 0 - .global UNK_0210566C -UNK_0210566C: ; 0x0210566C - .asciz "fielddata/eventdata/zone_event_release.narc" - - .balign 4, 0 - .global UNK_02105698 -UNK_02105698: ; 0x02105698 - .asciz "application/wifi_earth/wifi_earth_place.narc" - - .balign 4, 0 - .global UNK_021056C8 -UNK_021056C8: ; 0x021056C8 - .asciz "demo/egg/data/particle/egg_demo_particle.narc" - - .balign 4, 0 - .global UNK_021056F8 -UNK_021056F8: ; 0x021056F8 - .asciz "application/zukanlist/zkn_data/zukan_data.narc" - - .balign 4, 0 - .global UNK_02105728 -UNK_02105728: ; 0x02105728 - .asciz "fielddata/areadata/area_map_tex/map_tex_set.narc" - - .balign 4, 0 - .global UNK_0210575C -UNK_0210575C: ; 0x0210575C - .asciz "application/zukanlist/zkn_data/zukan_enc_pearl.narc" - - .balign 4, 0 - .global UNK_02105790 -UNK_02105790: ; 0x02105790 - .asciz "fielddata/areadata/area_build_model/area_build.narc" - - .balign 4, 0 - .global UNK_021057C4 -UNK_021057C4: ; 0x021057C4 - .asciz "demo/shinka/data/particle/shinka_demo_particle.narc" - - .balign 4, 0 - .global UNK_021057F8 -UNK_021057F8: ; 0x021057F8 - .asciz "application/zukanlist/zkn_data/zukan_enc_diamond.narc" - - .balign 4, 0 - .global UNK_02105830 -UNK_02105830: ; 0x02105830 - .asciz "fielddata/areadata/area_build_model/areabm_texset.narc" - - .balign 4, 0 - .global UNK_02105868 -UNK_02105868: ; 0x02105868 - .asciz "fielddata/areadata/area_move_model/move_model_list.narc" - - .balign 4, 0 - .global UNK_021058A0 -UNK_021058A0: ; 0x021058A0 - .word UNK_02104EA0 - .word UNK_02104E30 - .word UNK_02105260 - .word UNK_02105180 - .word UNK_02105080 - .word UNK_02104FC0 - .word UNK_02104E4C - .word UNK_02104F2C - .word UNK_02104854 - .word UNK_02104F48 - .word UNK_021054CC - .word UNK_021050C0 - .word UNK_021049D0 - .word UNK_02104958 - .word UNK_0210482C - .word UNK_0210530C - .word UNK_02105330 - .word UNK_02104A78 - .word UNK_021047C8 - .word UNK_02105280 - .word UNK_02104BF8 - .word UNK_0210539C - .word UNK_021053C0 - .word UNK_021053E4 - .word UNK_0210542C - .word UNK_02104B50 - .word UNK_021047F0 - .word UNK_02104F80 - .word UNK_02104B68 - .word UNK_021055BC - .word UNK_02104D18 - .word UNK_021047DC - .word UNK_0210566C - .word UNK_02104FA0 - .word UNK_02104E68 - .word UNK_02104970 - .word UNK_02104D34 - .word UNK_02105454 - .word UNK_02104AF0 - .word UNK_021049B8 - .word UNK_021054F4 - .word UNK_02105408 - .word UNK_02105354 - .word UNK_02105790 - .word UNK_02105728 - .word UNK_021051C0 - .word UNK_021052A0 - .word UNK_02105140 - .word UNK_02104DC0 - .word UNK_02105868 - .word UNK_02104818 - .word UNK_02104DDC - .word UNK_021048CC - .word UNK_02104B20 - .word UNK_02104930 - .word UNK_0210487C - .word UNK_021049A0 - .word UNK_02104FE0 - .word UNK_02105000 - .word UNK_02104E14 - .word UNK_02104E84 - .word UNK_02105160 - .word UNK_02104B08 - .word UNK_02104BE0 - .word UNK_02104804 - .word UNK_02104AA8 - .word UNK_02104AC0 - .word UNK_02105640 - .word UNK_021052C4 - .word UNK_02105060 - .word UNK_02105220 - .word UNK_02105830 - .word UNK_02105240 - .word UNK_02104CB8 - .word UNK_02104B98 - .word UNK_021056F8 - .word UNK_02104868 - .word UNK_021050A0 - .word UNK_02104944 - .word UNK_02104B38 - .word UNK_02104CE8 - .word UNK_02104CD0 - .word UNK_02104EBC - .word UNK_02104A30 - .word UNK_02105040 - .word UNK_02104C10 - .word UNK_0210491C - .word UNK_02104A18 - .word UNK_021049E8 - .word UNK_021048A4 - .word UNK_02105100 - .word UNK_02105614 - .word UNK_02104B80 - .word UNK_02104C28 - .word UNK_02104C40 - .word UNK_02104908 - .word UNK_0210551C - .word UNK_02104A48 - .word UNK_02104A60 - .word UNK_021055E8 - .word UNK_02105594 - .word UNK_02104BC8 - .word UNK_02105698 - .word UNK_02104F10 - .word UNK_02104C58 - .word UNK_02104D6C - .word UNK_021048F4 - .word UNK_02104C70 - .word UNK_021051E0 - .word UNK_02104CA0 - .word UNK_02104840 - .word UNK_02104BB0 - .word UNK_021052E8 - .word UNK_02104F64 - .word UNK_021050E0 - .word UNK_0210556C - .word UNK_02104988 - .word UNK_021051A0 - .word UNK_02104EF4 - .word UNK_021056C8 - .word UNK_02104890 - .word UNK_02105120 - .word UNK_02104AD8 - .word UNK_021048B8 - .word UNK_021057C4 - .word UNK_02104A90 - .word UNK_0210479C - .word UNK_021048E0 - .word UNK_02104C88 - .word UNK_02105544 - .word UNK_02104A00 - .word UNK_021047A8 - .word UNK_02104ED8 - .word UNK_021047B8 - .word UNK_02104D88 - .word UNK_02104DF8 - .word UNK_02104D50 - .word UNK_02105020 - .word UNK_02105200 - .word UNK_021057F8 - .word UNK_0210575C - .word UNK_02104DA4 - .word UNK_02105378 - .word UNK_021054A4 - .word UNK_0210547C - .word UNK_02104D00 - - .text - - thumb_func_start ReadNARCFile -ReadNARCFile: ; 0x02006314 - push {r3-r7, lr} - sub sp, #0x60 - add r4, r1, #0x0 - mov r1, #0x0 - str r0, [sp, #0x0] - str r1, [sp, #0x14] - str r1, [sp, #0x10] - str r1, [sp, #0xc] - add r0, sp, #0x8 - strh r1, [r0, #0x0] - add r0, sp, #0x18 - add r5, r2, #0x0 - str r3, [sp, #0x4] - bl FS_InitFile - add r0, sp, #0x18 - add r1, r4, #0x0 - bl FS_OpenFile - add r0, sp, #0x18 - mov r1, #0xc - mov r2, #0x0 - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x14 - mov r2, #0x2 - bl FS_ReadFile - ldr r4, [sp, #0x14] - add r0, sp, #0x18 - add r1, r4, #0x4 - mov r2, #0x0 - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x14 - mov r2, #0x4 - bl FS_ReadFile - add r0, sp, #0x18 - add r1, sp, #0x8 - mov r2, #0x2 - bl FS_ReadFile - add r0, sp, #0x8 - ldrh r0, [r0, #0x0] - cmp r0, r5 - bgt _0200637A - bl ErrorHandling -_0200637A: - ldr r0, [sp, #0x14] - mov r2, #0x0 - add r6, r4, r0 - add r0, sp, #0x18 - add r1, r6, #0x4 - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x14 - mov r2, #0x4 - bl FS_ReadFile - add r4, #0xc - lsl r1, r5, #0x3 - add r0, sp, #0x18 - add r1, r4, r1 - mov r2, #0x0 - ldr r7, [sp, #0x14] - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x10 - mov r2, #0x4 - bl FS_ReadFile - add r0, sp, #0x18 - add r1, sp, #0xc - mov r2, #0x4 - bl FS_ReadFile - add r2, r6, r7 - ldr r1, [sp, #0x10] - add r2, #0x8 - add r2, r2, r1 - ldr r1, [sp, #0x4] - add r0, sp, #0x18 - add r1, r1, r2 - mov r2, #0x0 - bl FS_SeekFile - ldr r0, [sp, #0x78] - cmp r0, #0x0 - bne _020063D6 - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x10] - sub r0, r1, r0 -_020063D6: - str r0, [sp, #0x14] - cmp r0, #0x0 - bne _020063E0 - bl ErrorHandling -_020063E0: - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x14] - add r0, sp, #0x18 - bl FS_ReadFile - add r0, sp, #0x18 - bl FS_CloseFile - add sp, #0x60 - pop {r3-r7, pc} - - thumb_func_start LoadFileIntoMemory -LoadFileIntoMemory: ; 0x020063F4 - push {r3-r7, lr} - sub sp, #0x60 - add r5, r1, #0x0 - mov r1, #0x0 - add r4, r0, #0x0 - str r1, [sp, #0x14] - str r1, [sp, #0x10] - str r1, [sp, #0xc] - add r0, sp, #0x8 - strh r1, [r0, #0x0] - add r0, sp, #0x18 - str r2, [sp, #0x0] - str r3, [sp, #0x4] - bl FS_InitFile - add r0, sp, #0x18 - add r1, r4, #0x0 - bl FS_OpenFile - add r0, sp, #0x18 - mov r1, #0xc - mov r2, #0x0 - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x14 - mov r2, #0x2 - bl FS_ReadFile - ldr r4, [sp, #0x14] - add r0, sp, #0x18 - add r1, r4, #0x4 - mov r2, #0x0 - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x14 - mov r2, #0x4 - bl FS_ReadFile - add r0, sp, #0x18 - add r1, sp, #0x8 - mov r2, #0x2 - bl FS_ReadFile - add r0, sp, #0x8 - ldrh r0, [r0, #0x0] - cmp r0, r5 - bgt _0200645A - bl ErrorHandling -_0200645A: - ldr r0, [sp, #0x14] - mov r2, #0x0 - add r6, r4, r0 - add r0, sp, #0x18 - add r1, r6, #0x4 - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x14 - mov r2, #0x4 - bl FS_ReadFile - add r4, #0xc - lsl r1, r5, #0x3 - add r0, sp, #0x18 - add r1, r4, r1 - mov r2, #0x0 - ldr r7, [sp, #0x14] - bl FS_SeekFile - add r0, sp, #0x18 - add r1, sp, #0x10 - mov r2, #0x4 - bl FS_ReadFile - add r0, sp, #0x18 - add r1, sp, #0xc - mov r2, #0x4 - bl FS_ReadFile - add r2, r6, r7 - ldr r1, [sp, #0x10] - add r2, #0x8 - add r2, r2, r1 - ldr r1, [sp, #0x4] - add r0, sp, #0x18 - add r1, r1, r2 - mov r2, #0x0 - bl FS_SeekFile - ldr r0, [sp, #0x78] - cmp r0, #0x0 - bne _020064B6 - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x10] - sub r0, r1, r0 -_020064B6: - str r0, [sp, #0x14] - cmp r0, #0x0 - bne _020064C0 - bl ErrorHandling -_020064C0: - ldr r0, [sp, #0x7c] - cmp r0, #0x0 - bne _020064D0 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x14] - bl FUN_02016998 - b _020064D8 -_020064D0: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x14] - bl FUN_020169D8 -_020064D8: - add r4, r0, #0x0 - ldr r2, [sp, #0x14] - add r0, sp, #0x18 - add r1, r4, #0x0 - bl FS_ReadFile - add r0, sp, #0x18 - bl FS_CloseFile - add r0, r4, #0x0 - add sp, #0x60 - pop {r3-r7, pc} - - thumb_func_start LoadFromNARC -LoadFromNARC: ; 0x020064F0 - push {r3-r4, lr} - sub sp, #0x4 - mov r3, #0x0 - lsl r4, r1, #0x2 - ldr r1, _02006508 ; =UNK_021058A0 - str r3, [sp, #0x0] - ldr r1, [r1, r4] - bl ReadNARCFile - add sp, #0x4 - pop {r3-r4, pc} - nop -_02006508: .word UNK_021058A0 - - thumb_func_start LoadFromNarc_2 -LoadFromNarc_2: ; 0x0200650C - push {r4, lr} - sub sp, #0x8 - mov r3, #0x0 - str r3, [sp, #0x0] - lsl r4, r0, #0x2 - ldr r0, _02006524 ; =UNK_021058A0 - str r3, [sp, #0x4] - ldr r0, [r0, r4] - bl LoadFileIntoMemory - add sp, #0x8 - pop {r4, pc} - .balign 4 -_02006524: .word UNK_021058A0 - - thumb_func_start FUN_02006528 -FUN_02006528: ; 0x02006528 - push {r4, lr} - sub sp, #0x8 - mov r3, #0x0 - str r3, [sp, #0x0] - mov r4, #0x1 - str r4, [sp, #0x4] - lsl r4, r0, #0x2 - ldr r0, _02006544 ; =UNK_021058A0 - ldr r0, [r0, r4] - bl LoadFileIntoMemory - add sp, #0x8 - pop {r4, pc} - nop -_02006544: .word UNK_021058A0 - - thumb_func_start FUN_02006548 -FUN_02006548: ; 0x02006548 - push {r3-r4, lr} - sub sp, #0x4 - ldr r4, [sp, #0x10] - str r4, [sp, #0x0] - lsl r4, r1, #0x2 - ldr r1, _02006560 ; =UNK_021058A0 - ldr r1, [r1, r4] - bl ReadNARCFile - add sp, #0x4 - pop {r3-r4, pc} - nop -_02006560: .word UNK_021058A0 - - thumb_func_start FUN_02006564 -FUN_02006564: ; 0x02006564 - push {r4, lr} - sub sp, #0x8 - ldr r4, [sp, #0x10] - str r4, [sp, #0x0] - mov r4, #0x0 - str r4, [sp, #0x4] - lsl r4, r0, #0x2 - ldr r0, _02006580 ; =UNK_021058A0 - ldr r0, [r0, r4] - bl LoadFileIntoMemory - add sp, #0x8 - pop {r4, pc} - nop -_02006580: .word UNK_021058A0 - - thumb_func_start FUN_02006584 -FUN_02006584: ; 0x02006584 - push {r4, lr} - sub sp, #0x8 - ldr r4, [sp, #0x10] - str r4, [sp, #0x0] - mov r4, #0x1 - str r4, [sp, #0x4] - lsl r4, r0, #0x2 - ldr r0, _020065A0 ; =UNK_021058A0 - ldr r0, [r0, r4] - bl LoadFileIntoMemory - add sp, #0x8 - pop {r4, pc} - nop -_020065A0: .word UNK_021058A0 - - thumb_func_start LoadFromNARC_7 -LoadFromNARC_7: ; 0x020065A4 - push {r3-r7, lr} - sub sp, #0x58 - add r5, r1, #0x0 - mov r1, #0x0 - add r4, r0, #0x0 - str r1, [sp, #0xc] - str r1, [sp, #0x8] - str r1, [sp, #0x4] - add r0, sp, #0x0 - strh r1, [r0, #0x0] - add r0, sp, #0x10 - bl FS_InitFile - ldr r1, _0200666C ; =UNK_021058A0 - lsl r2, r4, #0x2 - ldr r1, [r1, r2] - add r0, sp, #0x10 - bl FS_OpenFile - add r0, sp, #0x10 - mov r1, #0xc - mov r2, #0x0 - bl FS_SeekFile - add r0, sp, #0x10 - add r1, sp, #0xc - mov r2, #0x2 - bl FS_ReadFile - ldr r4, [sp, #0xc] - add r0, sp, #0x10 - add r1, r4, #0x4 - mov r2, #0x0 - bl FS_SeekFile - add r0, sp, #0x10 - add r1, sp, #0xc - mov r2, #0x4 - bl FS_ReadFile - add r0, sp, #0x10 - add r1, sp, #0x0 - mov r2, #0x2 - bl FS_ReadFile - add r0, sp, #0x0 - ldrh r0, [r0, #0x0] - cmp r0, r5 - bgt _0200660A - bl ErrorHandling -_0200660A: - ldr r0, [sp, #0xc] - mov r2, #0x0 - add r6, r4, r0 - add r0, sp, #0x10 - add r1, r6, #0x4 - bl FS_SeekFile - add r0, sp, #0x10 - add r1, sp, #0xc - mov r2, #0x4 - bl FS_ReadFile - add r4, #0xc - lsl r1, r5, #0x3 - add r0, sp, #0x10 - add r1, r4, r1 - mov r2, #0x0 - ldr r7, [sp, #0xc] - bl FS_SeekFile - add r0, sp, #0x10 - add r1, sp, #0x8 - mov r2, #0x4 - bl FS_ReadFile - add r0, sp, #0x10 - add r1, sp, #0x4 - mov r2, #0x4 - bl FS_ReadFile - add r2, r6, r7 - ldr r1, [sp, #0x8] - add r2, #0x8 - add r1, r2, r1 - add r0, sp, #0x10 - mov r2, #0x0 - bl FS_SeekFile - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - sub r0, r1, r0 - str r0, [sp, #0xc] - bne _02006664 - bl ErrorHandling -_02006664: - ldr r0, [sp, #0xc] - add sp, #0x58 - pop {r3-r7, pc} - nop -_0200666C: .word UNK_021058A0 - - thumb_func_start FUN_02006670 -FUN_02006670: ; 0x02006670 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x54 - bl FUN_02016998 - add r4, r0, #0x0 - beq _020066EC - mov r1, #0x0 - str r1, [r4, #0x48] - bl FS_InitFile - ldr r1, _020066F0 ; =UNK_021058A0 - lsl r2, r5, #0x2 - ldr r1, [r1, r2] - add r0, r4, #0x0 - bl FS_OpenFile - add r0, r4, #0x0 - mov r1, #0xc - mov r2, #0x0 - bl FS_SeekFile - add r1, r4, #0x0 - add r0, r4, #0x0 - add r1, #0x48 - mov r2, #0x2 - bl FS_ReadFile - ldr r1, [r4, #0x48] - add r0, r4, #0x0 - add r1, r1, #0x4 - mov r2, #0x0 - bl FS_SeekFile - add r0, r4, #0x0 - add r1, sp, #0x0 - mov r2, #0x4 - bl FS_ReadFile - add r1, r4, #0x0 - add r0, r4, #0x0 - add r1, #0x50 - mov r2, #0x2 - bl FS_ReadFile - ldr r1, [r4, #0x48] - ldr r0, [sp, #0x0] - mov r2, #0x0 - add r5, r1, r0 - add r0, r4, #0x0 - add r1, r5, #0x4 - bl FS_SeekFile - add r0, r4, #0x0 - add r1, sp, #0x0 - mov r2, #0x4 - bl FS_ReadFile - ldr r0, [sp, #0x0] - add r0, r5, r0 - str r0, [r4, #0x4c] -_020066EC: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_020066F0: .word UNK_021058A0 - - thumb_func_start FUN_020066F4 -FUN_020066F4: ; 0x020066F4 - push {r4, lr} - add r4, r0, #0x0 - bl FS_CloseFile - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - - thumb_func_start FUN_02006704 -FUN_02006704: ; 0x02006704 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, #0x50 - ldrh r0, [r0, #0x0] - add r4, r1, #0x0 - add r6, r2, #0x0 - cmp r0, r4 - bhi _0200671A - bl ErrorHandling -_0200671A: - ldr r2, [r5, #0x48] - lsl r1, r4, #0x3 - add r2, #0xc - add r1, r2, r1 - add r0, r5, #0x0 - mov r2, #0x0 - bl FS_SeekFile - add r0, r5, #0x0 - add r1, sp, #0x4 - mov r2, #0x4 - bl FS_ReadFile - add r0, r5, #0x0 - add r1, sp, #0x0 - mov r2, #0x4 - bl FS_ReadFile - ldr r2, [r5, #0x4c] - ldr r1, [sp, #0x4] - add r2, #0x8 - add r1, r2, r1 - add r0, r5, #0x0 - mov r2, #0x0 - bl FS_SeekFile - ldr r2, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r6, #0x0 - sub r1, r2, r1 - bl FUN_02016998 - add r4, r0, #0x0 - beq _0200676C - ldr r3, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - sub r2, r3, r2 - bl FS_ReadFile -_0200676C: - add r0, r4, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02006774 -FUN_02006774: ; 0x02006774 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, #0x50 - ldrh r0, [r0, #0x0] - add r4, r1, #0x0 - add r6, r2, #0x0 - cmp r0, r4 - bhi _0200678A - bl ErrorHandling -_0200678A: - ldr r2, [r5, #0x48] - lsl r1, r4, #0x3 - add r2, #0xc - add r1, r2, r1 - add r0, r5, #0x0 - mov r2, #0x0 - bl FS_SeekFile - add r0, r5, #0x0 - add r1, sp, #0x4 - mov r2, #0x4 - bl FS_ReadFile - add r0, r5, #0x0 - add r1, sp, #0x0 - mov r2, #0x4 - bl FS_ReadFile - ldr r2, [r5, #0x4c] - ldr r1, [sp, #0x4] - add r2, #0x8 - add r1, r2, r1 - add r0, r5, #0x0 - mov r2, #0x0 - bl FS_SeekFile - ldr r3, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, r5, #0x0 - add r1, r6, #0x0 - sub r2, r3, r2 - bl FS_ReadFile - add sp, #0x8 - pop {r4-r6, pc} - - thumb_func_start FUN_020067D0 -FUN_020067D0: ; 0x020067D0 - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, #0x50 - ldrh r0, [r0, #0x0] - add r4, r1, #0x0 - cmp r0, r4 - bhi _020067E4 - bl ErrorHandling -_020067E4: - ldr r2, [r5, #0x48] - lsl r1, r4, #0x3 - add r2, #0xc - add r1, r2, r1 - add r0, r5, #0x0 - mov r2, #0x0 - bl FS_SeekFile - add r0, r5, #0x0 - add r1, sp, #0x4 - mov r2, #0x4 - bl FS_ReadFile - add r0, r5, #0x0 - add r1, sp, #0x0 - mov r2, #0x4 - bl FS_ReadFile - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x4] - sub r0, r1, r0 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02006814 -FUN_02006814: ; 0x02006814 - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x50 - ldrh r0, [r0, #0x0] - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r0, r4 - bhi _0200682A - bl ErrorHandling -_0200682A: - ldr r2, [r5, #0x48] - lsl r1, r4, #0x3 - add r2, #0xc - add r1, r2, r1 - add r0, r5, #0x0 - mov r2, #0x0 - bl FS_SeekFile - add r0, r5, #0x0 - add r1, sp, #0x0 - mov r2, #0x4 - bl FS_ReadFile - ldr r2, [r5, #0x4c] - ldr r1, [sp, #0x0] - add r2, #0x8 - add r1, r2, r1 - add r0, r5, #0x0 - add r1, r6, r1 - mov r2, #0x0 - bl FS_SeekFile - ldr r1, [sp, #0x18] - add r0, r5, #0x0 - add r2, r7, #0x0 - bl FS_ReadFile - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02006864 -FUN_02006864: ; 0x02006864 - add r3, r1, #0x0 - add r1, r2, #0x0 - add r2, r3, #0x0 - ldr r3, _02006870 ; =FS_ReadFile - bx r3 - nop -_02006870: .word FS_ReadFile - - thumb_func_start FUN_02006874 -FUN_02006874: ; 0x02006874 - add r0, #0x50 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 diff --git a/arm9/global.inc b/arm9/global.inc index 4f495f81..41378676 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -618,6 +618,10 @@ .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
diff --git a/arm9/lib/include/FS_file.h b/arm9/lib/include/FS_file.h index cfb043af..6e4f1cd0 100644 --- a/arm9/lib/include/FS_file.h +++ b/arm9/lib/include/FS_file.h @@ -33,7 +33,7 @@ typedef struct FSDirPos u16 index; u32 pos; } -FSDirPos; +FSDirPos; // size = 0xC typedef struct FSFileID { @@ -138,41 +138,41 @@ FSWriteFileInfo; typedef struct FSFile { - FSFileLink link; - struct FSArchive *arc; - u32 stat; - FSCommandType command; - FSResult error; - OSThreadQueue queue[1]; + FSFileLink link; // 0x00 + struct FSArchive *arc; // 0x08 + u32 stat; // 0xC + FSCommandType command; // 0x10 + FSResult error; // 0x14 + OSThreadQueue queue[1]; // 0x18 union { struct { - u32 own_id; - u32 top; - u32 bottom; - u32 pos; + u32 own_id; // 0x20 + u32 top; // 0x24 + u32 bottom; // 0x28 + u32 pos; // 0x2C } file; struct { - FSDirPos pos; - u32 parent; + FSDirPos pos; // 0x20 + u32 parent; // 0x2C } dir; - } prop; + } prop; // 0x20 union { - FSReadFileInfo readfile; - FSWriteFileInfo writefile; - - FSSeekDirInfo seekdir; - FSReadDirInfo readdir; - FSFindPathInfo findpath; - FSGetPathInfo getpath; - FSOpenFileFastInfo openfilefast; - FSOpenFileDirectInfo openfiledirect; - FSCloseFileInfo closefile; - } arg; -} -FSFile; + FSReadFileInfo readfile; // 0x30 + FSWriteFileInfo writefile; // 0x30 + + FSSeekDirInfo seekdir; // 0x30 + FSReadDirInfo readdir; // 0x30 + FSFindPathInfo findpath; // 0x30 + FSGetPathInfo getpath; // 0x30 + FSOpenFileFastInfo openfilefast; // 0x30 + FSOpenFileDirectInfo openfiledirect; // 0x30 + FSCloseFileInfo closefile; // 0x30 + } arg; // 0x30 +} +FSFile; // size = 0x50 void FS_Init(u32 default_dma_no); BOOL FS_IsAvailable(void); diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s index d7926ff4..dd87b864 100644 --- a/arm9/modules/04/asm/arm_04.s +++ b/arm9/modules/04/asm/arm_04.s @@ -24,6 +24,7 @@ MOD04_021D8D18: ; 0x021D8D18 .align 2, 0 _021D8D58: .word UNK04_02210468 _021D8D5C: .word 0x000013D8 + arm_func_end MOD04_021D8D18 arm_func_start MOD04_021D8D60 MOD04_021D8D60: ; 0x021D8D60 @@ -138,6 +139,7 @@ _021D8EF8: .word UNK04_02210460 _021D8EFC: .word UNK04_0220BF1C _021D8F00: .word UNK04_0220BF20 _021D8F04: .word UNK04_0220BF28 + arm_func_end MOD04_021D8D60 arm_func_start MOD04_021D8F08 MOD04_021D8F08: ; 0x021D8F08 @@ -341,6 +343,7 @@ _021D9200: .word UNK04_0220BF70 _021D9204: .word 0x00001188 _021D9208: .word UNK04_0220BF7C _021D920C: .word UNK04_02210464 + arm_func_end MOD04_021D8F08 arm_func_start MOD04_021D9210 MOD04_021D9210: ; 0x021D9210 @@ -484,6 +487,7 @@ _021D9408: .word UNK04_0221046C _021D940C: .word UNK04_0220BF98 _021D9410: .word 0x00004E88 _021D9414: .word 0x00004E8C + arm_func_end MOD04_021D9210 arm_func_start MOD04_021D9418 MOD04_021D9418: ; 0x021D9418 @@ -677,6 +681,7 @@ _021D96C0: add r0, r2, r4 bl OS_UnlockMutex b _021D9448 + arm_func_end MOD04_021D9418 arm_func_start MOD04_021D96CC MOD04_021D96CC: ; 0x021D96CC @@ -689,6 +694,7 @@ _021D96DC: .word UNK04_02210468 _021D96E0: .word 0x000013D8 _021D96E4: .word 0x00001B34 _021D96E8: .word 0x00004E84 + arm_func_end MOD04_021D96CC arm_func_start MOD04_021D96EC MOD04_021D96EC: ; 0x021D96EC @@ -761,6 +767,7 @@ _021D97E8: .word UNK04_02210468 _021D97EC: .word UNK04_0221046C _021D97F0: .word 0x000011CC _021D97F4: .word 0x021D3498 + arm_func_end MOD04_021D96EC arm_func_start MOD04_021D97F8 MOD04_021D97F8: ; 0x021D97F8 @@ -805,6 +812,7 @@ _021D987C: .word 0x00004E20 _021D9880: .word 0x00007530 _021D9884: .word 0x00005206 _021D9888: .word 0x00004E84 + arm_func_end MOD04_021D97F8 arm_func_start MOD04_021D988C MOD04_021D988C: ; 0x021D988C @@ -829,6 +837,7 @@ MOD04_021D988C: ; 0x021D988C .align 2, 0 _021D98D4: .word UNK04_02210468 _021D98D8: .word 0x000013D8 + arm_func_end MOD04_021D988C arm_func_start MOD04_021D98DC MOD04_021D98DC: ; 0x021D98DC @@ -849,6 +858,7 @@ MOD04_021D98DC: ; 0x021D98DC .align 2, 0 _021D9914: .word UNK04_02210468 _021D9918: .word 0x00001318 + arm_func_end MOD04_021D98DC arm_func_start MOD04_021D991C MOD04_021D991C: ; 0x021D991C @@ -876,6 +886,7 @@ _021D9948: .align 2, 0 _021D996C: .word UNK04_02210468 _021D9970: .word UNK04_0220BFC4 + arm_func_end MOD04_021D991C arm_func_start MOD04_021D9974 MOD04_021D9974: ; 0x021D9974 @@ -922,6 +933,7 @@ _021D99DC: _021D9A0C: .word UNK04_02210468 _021D9A10: .word 0x000013D8 _021D9A14: .word 0x00001318 + arm_func_end MOD04_021D9974 arm_func_start MOD04_021D9A18 MOD04_021D9A18: ; 0x021D9A18 @@ -972,6 +984,7 @@ _021D9ABC: .word UNK04_02210468 _021D9AC0: .word 0x000013D8 _021D9AC4: .word 0x00001318 _021D9AC8: .word MOD04_021D9418 + arm_func_end MOD04_021D9A18 arm_func_start MOD04_021D9ACC MOD04_021D9ACC: ; 0x021D9ACC @@ -1061,6 +1074,7 @@ _021D9C0C: .word UNK04_02210464 _021D9C10: .word 0x00004E84 _021D9C14: .word 0x000011CC _021D9C18: .word UNK04_02210460 + arm_func_end MOD04_021D9ACC arm_func_start MOD04_021D9C1C MOD04_021D9C1C: ; 0x021D9C1C @@ -1069,6 +1083,7 @@ MOD04_021D9C1C: ; 0x021D9C1C bx lr .align 2, 0 _021D9C28: .word UNK04_0220BEB4 + arm_func_end MOD04_021D9C1C arm_func_start MOD04_021D9C2C MOD04_021D9C2C: ; 0x021D9C2C @@ -1285,6 +1300,7 @@ _021D9F68: .word UNK04_0220C058 _021D9F6C: .word UNK04_0220C060 _021D9F70: .word UNK04_0220C078 _021D9F74: .word UNK04_0220C084 + arm_func_end MOD04_021D9C2C arm_func_start MOD04_021D9F78 MOD04_021D9F78: ; 0x021D9F78 @@ -1475,6 +1491,7 @@ _021DA228: .word UNK04_0220C0A4 _021DA22C: .word UNK04_0220C0AC _021DA230: .word UNK04_0220C0B8 _021DA234: .word UNK04_0220C0D4 + arm_func_end MOD04_021D9F78 arm_func_start MOD04_021DA238 MOD04_021DA238: ; 0x021DA238 @@ -1488,6 +1505,7 @@ MOD04_021DA238: ; 0x021DA238 bl MOD04_021D9F78 add sp, sp, #0x18 ldmia sp!, {r4, pc} + arm_func_end MOD04_021DA238 arm_func_start MOD04_021DA260 MOD04_021DA260: ; 0x021DA260 @@ -1532,6 +1550,7 @@ _021DA2D8: .align 2, 0 _021DA2EC: .word UNK04_0220C110 _021DA2F0: .word UNK04_0220C12C + arm_func_end MOD04_021DA260 arm_func_start MOD04_021DA2F4 MOD04_021DA2F4: ; 0x021DA2F4 @@ -1551,6 +1570,7 @@ MOD04_021DA2F4: ; 0x021DA2F4 bl strcpy mov r0, #1 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DA2F4 arm_func_start MOD04_021DA334 MOD04_021DA334: ; 0x021DA334 @@ -1575,6 +1595,7 @@ MOD04_021DA334: ; 0x021DA334 mov r1, #0 strb r1, [r6, r0] ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DA334 arm_func_start MOD04_021DA388 MOD04_021DA388: ; 0x021DA388 @@ -1601,6 +1622,7 @@ _021DA398: _021DA3D4: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DA388 arm_func_start MOD04_021DA3DC MOD04_021DA3DC: ; 0x021DA3DC @@ -1786,6 +1808,7 @@ _021DA67C: .word UNK04_0220C164 _021DA680: .word UNK04_0220C168 _021DA684: .word UNK04_0220C16C _021DA688: .word UNK04_0220C170 + arm_func_end MOD04_021DA3DC arm_func_start MOD04_021DA68C MOD04_021DA68C: ; 0x021DA68C @@ -1880,6 +1903,7 @@ _021DA7D8: .word UNK04_0220C174 _021DA7DC: .word UNK04_0220C194 _021DA7E0: .word UNK04_0220C1B4 _021DA7E4: .word UNK04_0220C1D0 + arm_func_end MOD04_021DA68C arm_func_start MOD04_021DA7E8 MOD04_021DA7E8: ; 0x021DA7E8 @@ -1977,6 +2001,7 @@ _021DA940: .word UNK04_0220C1F4 _021DA944: .word 0x000001BB _021DA948: .word UNK04_0220C200 _021DA94C: .word UNK04_0220C204 + arm_func_end MOD04_021DA7E8 arm_func_start MOD04_021DA950 MOD04_021DA950: ; 0x021DA950 @@ -2029,6 +2054,7 @@ MOD04_021DA950: ; 0x021DA950 .align 2, 0 _021DAA08: .word UNK04_0220C208 _021DAA0C: .word UNK04_0220C218 + arm_func_end MOD04_021DA950 arm_func_start MOD04_021DAA10 MOD04_021DAA10: ; 0x021DAA10 @@ -2050,6 +2076,7 @@ _021DAA38: ldmia sp!, {r4, pc} .align 2, 0 _021DAA4C: .word UNK04_0220C218 + arm_func_end MOD04_021DAA10 arm_func_start MOD04_021DAA50 MOD04_021DAA50: ; 0x021DAA50 @@ -2082,12 +2109,14 @@ MOD04_021DAA50: ; 0x021DAA50 ldmia sp!, {r4, r5, pc} .align 2, 0 _021DAABC: .word UNK04_0220C22C + arm_func_end MOD04_021DAA50 arm_func_start MOD04_021DAAC0 MOD04_021DAAC0: ; 0x021DAAC0 ands r1, r0, #0x8000 bicne r0, r0, #0x8000 bx lr + arm_func_end MOD04_021DAAC0 arm_func_start MOD04_021DAACC MOD04_021DAACC: ; 0x021DAACC @@ -2132,6 +2161,7 @@ _021DAB34: .align 2, 0 _021DAB60: .word 0x000019F4 _021DAB64: .word UNK04_0220C240 + arm_func_end MOD04_021DAACC arm_func_start MOD04_021DAB68 MOD04_021DAB68: ; 0x021DAB68 @@ -2213,6 +2243,7 @@ _021DAC28: _021DAC8C: .word 0x000019F4 _021DAC90: .word UNK04_0220C244 _021DAC94: .word UNK04_0220C248 + arm_func_end MOD04_021DAB68 arm_func_start MOD04_021DAC98 MOD04_021DAC98: ; 0x021DAC98 @@ -2278,6 +2309,7 @@ _021DAD1C: _021DAD7C: .word 0x000019F4 _021DAD80: .word UNK04_0220C250 _021DAD84: .word UNK04_0220C148 + arm_func_end MOD04_021DAC98 arm_func_start MOD04_021DAD88 MOD04_021DAD88: ; 0x021DAD88 @@ -2331,6 +2363,7 @@ MOD04_021DAD88: ; 0x021DAD88 _021DAE40: .word 0x000019F4 _021DAE44: .word UNK04_0220C25C _021DAE48: .word UNK04_0220C2B0 + arm_func_end MOD04_021DAD88 arm_func_start MOD04_021DAE4C MOD04_021DAE4C: ; 0x021DAE4C @@ -2388,6 +2421,7 @@ _021DAF08: .word 0x000019F4 _021DAF0C: .word UNK04_0220C2D0 _021DAF10: .word UNK04_0220C2E8 _021DAF14: .word 0x00001C10 + arm_func_end MOD04_021DAE4C arm_func_start MOD04_021DAF18 MOD04_021DAF18: ; 0x021DAF18 @@ -2606,6 +2640,7 @@ _021DB238: .word UNK04_0220C0E4 _021DB23C: .word 0x021C8F04 _021DB240: .word 0x00001A14 _021DB244: .word 0x000082EA + arm_func_end MOD04_021DAF18 arm_func_start MOD04_021DB248 MOD04_021DB248: ; 0x021DB248 @@ -2674,15 +2709,17 @@ _021DB338: .word UNK04_0220C148 _021DB33C: .word 0x00001A14 _021DB340: .word UNK04_0220C300 _021DB344: .word UNK04_0220C164 + arm_func_end MOD04_021DB248 arm_func_start MOD04_021DB348 MOD04_021DB348: ; 0x021DB348 - ldr ip, _021DB358 ; =0x0209AB80 + ldr ip, _021DB358 ; =CPS_Resolve add r0, r0, #0x1000 ldr r0, [r0, #0x124] bx ip .align 2, 0 -_021DB358: .word 0x0209AB80 +_021DB358: .word CPS_Resolve + arm_func_end MOD04_021DB348 arm_func_start MOD04_021DB35C MOD04_021DB35C: ; 0x021DB35C @@ -2710,6 +2747,7 @@ MOD04_021DB35C: ; 0x021DB35C _021DB3AC: .word 0x00001134 _021DB3B0: .word 0x00000B68 _021DB3B4: .word 0x000005EA + arm_func_end MOD04_021DB35C arm_func_start MOD04_021DB3B8 MOD04_021DB3B8: ; 0x021DB3B8 @@ -2750,6 +2788,7 @@ _021DB41C: .align 2, 0 _021DB438: .word 0x000019D0 _021DB43C: .word 0x00001BF4 + arm_func_end MOD04_021DB3B8 arm_func_start MOD04_021DB440 MOD04_021DB440: ; 0x021DB440 @@ -2779,6 +2818,7 @@ MOD04_021DB440: ; 0x021DB440 .align 2, 0 _021DB49C: .word 0x00001BF4 _021DB4A0: .word 0x00001B34 + arm_func_end MOD04_021DB440 arm_func_start MOD04_021DB4A4 MOD04_021DB4A4: ; 0x021DB4A4 @@ -2835,6 +2875,7 @@ _021DB560: .word 0x00001A14 _021DB564: .word UNK04_02210480 _021DB568: .word 0x00001B34 _021DB56C: .word MOD04_021DAF18 + arm_func_end MOD04_021DB4A4 arm_func_start MOD04_021DB570 MOD04_021DB570: ; 0x021DB570 @@ -2878,6 +2919,7 @@ _021DB5F8: .word UNK04_0220C320 _021DB5FC: .word UNK04_0220C148 _021DB600: .word UNK04_0220C328 _021DB604: .word UNK04_0220C32C + arm_func_end MOD04_021DB570 arm_func_start MOD04_021DB608 MOD04_021DB608: ; 0x021DB608 @@ -2956,6 +2998,7 @@ _021DB720: .word 0x00000B68 _021DB724: .word UNK04_0220C354 _021DB728: .word 0x000005EA _021DB72C: .word 0x00001A04 + arm_func_end MOD04_021DB608 arm_func_start MOD04_021DB730 MOD04_021DB730: ; 0x021DB730 @@ -2978,6 +3021,7 @@ MOD04_021DB730: ; 0x021DB730 .align 2, 0 _021DB770: .word UNK04_02210484 _021DB774: .word 0x000011DC + arm_func_end MOD04_021DB730 arm_func_start MOD04_021DB778 MOD04_021DB778: ; 0x021DB778 @@ -4053,6 +4097,7 @@ _021DC6F8: .word UNK04_0220C3F8 _021DC6FC: .word UNK04_0220C4B4 _021DC700: .word UNK04_0220C4C0 _021DC704: .word UNK04_0220C4CC + arm_func_end MOD04_021DB778 arm_func_start MOD04_021DC708 MOD04_021DC708: ; 0x021DC708 @@ -4093,6 +4138,7 @@ _021DC740: _021DC788: .word UNK04_02210484 _021DC78C: .word 0x0000111C _021DC790: .word MOD04_021DB778 + arm_func_end MOD04_021DC708 arm_func_start MOD04_021DC794 MOD04_021DC794: ; 0x021DC794 @@ -4103,6 +4149,7 @@ MOD04_021DC794: ; 0x021DC794 bx lr .align 2, 0 _021DC7A8: .word UNK04_02210484 + arm_func_end MOD04_021DC794 arm_func_start MOD04_021DC7AC MOD04_021DC7AC: ; 0x021DC7AC @@ -4124,6 +4171,7 @@ MOD04_021DC7AC: ; 0x021DC7AC .align 2, 0 _021DC7E8: .word UNK04_02210484 _021DC7EC: .word 0x000011DC + arm_func_end MOD04_021DC7AC arm_func_start MOD04_021DC7F0 MOD04_021DC7F0: ; 0x021DC7F0 @@ -4162,6 +4210,7 @@ _021DC848: _021DC864: .word UNK04_02210484 _021DC868: .word UNK04_02210490 _021DC86C: .word 0x0000111C + arm_func_end MOD04_021DC7F0 arm_func_start MOD04_021DC870 MOD04_021DC870: ; 0x021DC870 @@ -4233,6 +4282,7 @@ _021DC960: .word UNK04_0220C4D8 _021DC964: .word UNK04_0220C3B0 _021DC968: .word UNK04_0220C464 _021DC96C: .word UNK04_0220C4E8 + arm_func_end MOD04_021DC870 arm_func_start MOD04_021DC970 MOD04_021DC970: ; 0x021DC970 @@ -4306,6 +4356,7 @@ _021DCA74: .word UNK04_0220C510 _021DCA78: .word 0x00001C10 _021DCA7C: .word 0x000011DC _021DCA80: .word UNK04_0221048C + arm_func_end MOD04_021DC970 arm_func_start MOD04_021DCA84 MOD04_021DCA84: ; 0x021DCA84 @@ -4458,6 +4509,7 @@ _021DCCB8: .word 0x021D74A8 _021DCCBC: .word UNK04_0220C550 _021DCCC0: .word UNK04_022104FC _021DCCC4: .word UNK04_022104F8 + arm_func_end MOD04_021DCA84 arm_func_start MOD04_021DCCC8 MOD04_021DCCC8: ; 0x021DCCC8 @@ -4614,6 +4666,7 @@ _021DCEF0: .word 0xFFFFA240 _021DCEF4: .word UNK04_0220C5C0 _021DCEF8: .word UNK04_0220C5C8 _021DCEFC: .word UNK04_0220C5D8 + arm_func_end MOD04_021DCCC8 arm_func_start MOD04_021DCF00 MOD04_021DCF00: ; 0x021DCF00 @@ -4685,6 +4738,7 @@ _021DCFE4: _021DCFF0: .word UNK04_02210504 _021DCFF4: .word 0x00001B3C _021DCFF8: .word 0xFFFFA1DB + arm_func_end MOD04_021DCF00 arm_func_start MOD04_021DCFFC MOD04_021DCFFC: ; 0x021DCFFC @@ -4852,6 +4906,7 @@ _021DD25C: .word UNK04_0220C604 _021DD260: .word UNK04_0220C60C _021DD264: .word UNK04_0220C614 _021DD268: .word 0x021D3498 + arm_func_end MOD04_021DCFFC arm_func_start MOD04_021DD26C MOD04_021DD26C: ; 0x021DD26C @@ -4878,6 +4933,7 @@ MOD04_021DD26C: ; 0x021DD26C .align 2, 0 _021DD2BC: .word UNK04_02210504 _021DD2C0: .word UNK04_0220C618 + arm_func_end MOD04_021DD26C arm_func_start MOD04_021DD2C4 MOD04_021DD2C4: ; 0x021DD2C4 @@ -4926,6 +4982,7 @@ _021DD35C: .word UNK04_02210504 _021DD360: .word 0xFFFFA1DC _021DD364: .word UNK04_0220C628 _021DD368: .word 0x00001C1C + arm_func_end MOD04_021DD2C4 arm_func_start MOD04_021DD36C MOD04_021DD36C: ; 0x021DD36C @@ -5038,6 +5095,7 @@ _021DD4F0: mov r0, r5 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_021DD36C arm_func_start MOD04_021DD4FC MOD04_021DD4FC: ; 0x021DD4FC @@ -5156,6 +5214,7 @@ _021DD6A0: .word 0x00000003 _021DD6A4: .word 0x2AAAAAAB _021DD6A8: .word 0x00000006 _021DD6AC: .word UNK04_0220C638 + arm_func_end MOD04_021DD4FC arm_func_start MOD04_021DD6B0 MOD04_021DD6B0: ; 0x021DD6B0 @@ -5169,6 +5228,7 @@ MOD04_021DD6B0: ; 0x021DD6B0 .align 2, 0 _021DD6CC: .word UNK04_02210508 _021DD6D0: .word UNK04_0221050C + arm_func_end MOD04_021DD6B0 arm_func_start MOD04_021DD6D4 MOD04_021DD6D4: ; 0x021DD6D4 @@ -5180,6 +5240,7 @@ MOD04_021DD6D4: ; 0x021DD6D4 bx lr .align 2, 0 _021DD6EC: .word UNK04_02210508 + arm_func_end MOD04_021DD6D4 arm_func_start MOD04_021DD6F0 MOD04_021DD6F0: ; 0x021DD6F0 @@ -5194,6 +5255,7 @@ MOD04_021DD6F0: ; 0x021DD6F0 .align 2, 0 _021DD710: .word UNK04_02210508 _021DD714: .word UNK04_0221050C + arm_func_end MOD04_021DD6F0 arm_func_start MOD04_021DD718 MOD04_021DD718: ; 0x021DD718 @@ -5269,6 +5331,7 @@ _021DD7F4: .align 2, 0 _021DD800: .word UNK04_0221050C _021DD804: .word UNK04_02210508 + arm_func_end MOD04_021DD718 arm_func_start MOD04_021DD808 MOD04_021DD808: ; 0x021DD808 @@ -5282,6 +5345,7 @@ MOD04_021DD808: ; 0x021DD808 .align 2, 0 _021DD824: .word UNK04_0221050C _021DD828: .word UNK04_02210508 + arm_func_end MOD04_021DD808 arm_func_start MOD04_021DD82C MOD04_021DD82C: ; 0x021DD82C @@ -5292,6 +5356,7 @@ MOD04_021DD82C: ; 0x021DD82C bx ip .align 2, 0 _021DD840: .word MOD04_021DD904 + arm_func_end MOD04_021DD82C arm_func_start MOD04_021DD844 MOD04_021DD844: ; 0x021DD844 @@ -5303,6 +5368,7 @@ MOD04_021DD844: ; 0x021DD844 bx ip .align 2, 0 _021DD85C: .word MOD04_021DD8E8 + arm_func_end MOD04_021DD844 arm_func_start MOD04_021DD860 MOD04_021DD860: ; 0x021DD860 @@ -5312,6 +5378,7 @@ MOD04_021DD860: ; 0x021DD860 bx ip .align 2, 0 _021DD870: .word MOD04_021DD944 + arm_func_end MOD04_021DD860 arm_func_start MOD04_021DD874 MOD04_021DD874: ; 0x021DD874 @@ -5346,6 +5413,7 @@ _021DD8D8: .align 2, 0 _021DD8E0: .word UNK04_02210514 _021DD8E4: .word UNK04_02210510 + arm_func_end MOD04_021DD874 arm_func_start MOD04_021DD8E8 MOD04_021DD8E8: ; 0x021DD8E8 @@ -5356,6 +5424,7 @@ MOD04_021DD8E8: ; 0x021DD8E8 bl MOD04_021DD874 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021DD8E8 arm_func_start MOD04_021DD904 MOD04_021DD904: ; 0x021DD904 @@ -5368,6 +5437,7 @@ MOD04_021DD904: ; 0x021DD904 ldmfd sp!, {pc} .align 2, 0 _021DD920: .word UNK04_02210510 + arm_func_end MOD04_021DD904 arm_func_start MOD04_021DD924 MOD04_021DD924: ; 0x021DD924 @@ -5380,6 +5450,7 @@ MOD04_021DD924: ; 0x021DD924 ldmfd sp!, {pc} .align 2, 0 _021DD940: .word UNK04_02210514 + arm_func_end MOD04_021DD924 arm_func_start MOD04_021DD944 MOD04_021DD944: ; 0x021DD944 @@ -5393,6 +5464,7 @@ MOD04_021DD944: ; 0x021DD944 ldmfd sp!, {pc} .align 2, 0 _021DD964: .word UNK04_02210514 + arm_func_end MOD04_021DD944 arm_func_start MOD04_021DD968 MOD04_021DD968: ; 0x021DD968 @@ -5404,6 +5476,7 @@ MOD04_021DD968: ; 0x021DD968 .align 2, 0 _021DD97C: .word UNK04_02210514 _021DD980: .word UNK04_02210510 + arm_func_end MOD04_021DD968 arm_func_start MOD04_021DD984 MOD04_021DD984: ; 0x021DD984 @@ -5431,6 +5504,7 @@ _021DD9CC: ldmfd sp!, {pc} .align 2, 0 _021DD9D8: .word 0xFFFF2D10 + arm_func_end MOD04_021DD984 arm_func_start MOD04_021DD9DC MOD04_021DD9DC: ; 0x021DD9DC @@ -5513,13 +5587,15 @@ _021DDAFC: mov r0, #1 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DD9DC arm_func_start MOD04_021DDB08 MOD04_021DDB08: ; 0x021DDB08 - ldr ip, _021DDB10 ; =0x020A8B28 + ldr ip, _021DDB10 ; =WCM_GetLinkLevel bx ip .align 2, 0 -_021DDB10: .word 0x020A8B28 +_021DDB10: .word WCM_GetLinkLevel + arm_func_end MOD04_021DDB08 arm_func_start MOD04_021DDB14 MOD04_021DDB14: ; 0x021DDB14 @@ -5536,6 +5612,7 @@ _021DDB34: bx lr .align 2, 0 _021DDB3C: .word UNK04_02210518 + arm_func_end MOD04_021DDB14 arm_func_start MOD04_021DDB40 MOD04_021DDB40: ; 0x021DDB40 @@ -5571,6 +5648,7 @@ MOD04_021DDB40: ; 0x021DDB40 ldmfd sp!, {pc} .align 2, 0 _021DDBB8: .word UNK04_02210518 + arm_func_end MOD04_021DDB40 arm_func_start MOD04_021DDBBC MOD04_021DDBBC: ; 0x021DDBBC @@ -5601,6 +5679,7 @@ _021DDC08: ldmia sp!, {r4, pc} .align 2, 0 _021DDC18: .word UNK04_02210518 + arm_func_end MOD04_021DDBBC arm_func_start MOD04_021DDC1C MOD04_021DDC1C: ; 0x021DDC1C @@ -5659,6 +5738,7 @@ _021DDCD8: ldmfd sp!, {pc} .align 2, 0 _021DDCE4: .word UNK04_02210518 + arm_func_end MOD04_021DDC1C arm_func_start MOD04_021DDCE8 MOD04_021DDCE8: ; 0x021DDCE8 @@ -5701,6 +5781,7 @@ _021DDD28: ldmfd sp!, {pc} .align 2, 0 _021DDD78: .word UNK04_02210518 + arm_func_end MOD04_021DDCE8 arm_func_start MOD04_021DDD7C MOD04_021DDD7C: ; 0x021DDD7C @@ -5725,6 +5806,7 @@ MOD04_021DDD7C: ; 0x021DDD7C ldmfd sp!, {pc} .align 2, 0 _021DDDC8: .word UNK04_02210518 + arm_func_end MOD04_021DDD7C arm_func_start MOD04_021DDDCC MOD04_021DDDCC: ; 0x021DDDCC @@ -5774,6 +5856,7 @@ _021DDE5C: _021DDE70: .word UNK04_02210518 _021DDE74: .word MOD04_021DD944 _021DDE78: .word MOD04_021DD904 + arm_func_end MOD04_021DDDCC arm_func_start MOD04_021DDE7C MOD04_021DDE7C: ; 0x021DDE7C @@ -5806,6 +5889,7 @@ _021DDEC4: _021DDED4: .word UNK04_0220D280 _021DDED8: .word UNK04_0220D2A8 _021DDEDC: .word UNK04_0220D2CC + arm_func_end MOD04_021DDE7C arm_func_start MOD04_021DDEE0 MOD04_021DDEE0: ; 0x021DDEE0 @@ -5834,6 +5918,7 @@ MOD04_021DDEE0: ; 0x021DDEE0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021DDF3C: .word UNK04_02210518 + arm_func_end MOD04_021DDEE0 arm_func_start MOD04_021DDF40 MOD04_021DDF40: ; 0x021DDF40 @@ -5841,6 +5926,7 @@ MOD04_021DDF40: ; 0x021DDF40 bx ip .align 2, 0 _021DDF48: .word MOD04_021D9974 + arm_func_end MOD04_021DDF40 arm_func_start MOD04_021DDF4C MOD04_021DDF4C: ; 0x021DDF4C @@ -5917,6 +6003,7 @@ _021DE010: .align 2, 0 _021DE054: .word UNK04_0221051C _021DE058: .word 0x00001E1C + arm_func_end MOD04_021DDF4C arm_func_start MOD04_021DE05C MOD04_021DE05C: ; 0x021DE05C @@ -5984,6 +6071,7 @@ _021DE140: .word UNK04_0220D2EC _021DE144: .word MOD04_021DD944 _021DE148: .word MOD04_021DD904 _021DE14C: .word 0x00001C10 + arm_func_end MOD04_021DE05C arm_func_start MOD04_021DE150 MOD04_021DE150: ; 0x021DE150 @@ -5997,6 +6085,7 @@ MOD04_021DE150: ; 0x021DE150 _021DE16C: mov r0, r4 ldmia sp!, {r4, pc} + arm_func_end MOD04_021DE150 arm_func_start MOD04_021DE174 MOD04_021DE174: ; 0x021DE174 @@ -6036,6 +6125,7 @@ _021DE1CC: _021DE1EC: .word MOD04_021DD944 _021DE1F0: .word MOD04_021DD904 _021DE1F4: .word UNK04_0220D2F0 + arm_func_end MOD04_021DE174 arm_func_start MOD04_021DE1F8 MOD04_021DE1F8: ; 0x021DE1F8 @@ -6098,6 +6188,7 @@ _021DE2AC: _021DE2C4: .word UNK04_022104F8 _021DE2C8: .word UNK04_022104FC _021DE2CC: .word 0xBC19137F + arm_func_end MOD04_021DE1F8 arm_func_start MOD04_021DE2D0 MOD04_021DE2D0: ; 0x021DE2D0 @@ -6115,6 +6206,7 @@ MOD04_021DE2D0: ; 0x021DE2D0 bl MOD04_02207330 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021DE2D0 arm_func_start MOD04_021DE308 MOD04_021DE308: ; 0x021DE308 @@ -6128,6 +6220,7 @@ MOD04_021DE308: ; 0x021DE308 bl MOD04_02207158 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021DE308 arm_func_start MOD04_021DE330 MOD04_021DE330: ; 0x021DE330 @@ -6144,6 +6237,7 @@ MOD04_021DE330: ; 0x021DE330 mov r2, r4 bl MOD04_0220733C ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DE330 arm_func_start MOD04_021DE364 MOD04_021DE364: ; 0x021DE364 @@ -6165,6 +6259,7 @@ MOD04_021DE364: ; 0x021DE364 mov r2, r4 bl MOD04_022074EC ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DE364 arm_func_start MOD04_021DE3AC MOD04_021DE3AC: ; 0x021DE3AC @@ -6177,6 +6272,7 @@ MOD04_021DE3AC: ; 0x021DE3AC mov r0, r4 bl MOD04_022077A8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021DE3AC arm_func_start MOD04_021DE3D0 MOD04_021DE3D0: ; 0x021DE3D0 @@ -6193,6 +6289,7 @@ MOD04_021DE3D0: ; 0x021DE3D0 mov r2, r4 bl MOD04_022069DC ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021DE3D0 arm_func_start MOD04_021DE404 MOD04_021DE404: ; 0x021DE404 @@ -6221,6 +6318,7 @@ _021DE448: .align 2, 0 _021DE454: .word UNK04_02210520 _021DE458: .word MOD04_021DE730 + arm_func_end MOD04_021DE404 arm_func_start MOD04_021DE45C MOD04_021DE45C: ; 0x021DE45C @@ -6296,6 +6394,7 @@ _021DE520: _021DE568: .word UNK04_02210520 _021DE56C: .word UNK04_0220D2F8 _021DE570: .word MOD04_021DE574 + arm_func_end MOD04_021DE45C arm_func_start MOD04_021DE574 MOD04_021DE574: ; 0x021DE574 @@ -6409,6 +6508,7 @@ _021DE704: mov r0, r4 bl OS_Sleep b _021DE58C + arm_func_end MOD04_021DE574 arm_func_start MOD04_021DE710 MOD04_021DE710: ; 0x021DE710 @@ -6421,6 +6521,7 @@ _021DE720: .word UNK04_0220D314 _021DE724: .word MOD04_021DE774 _021DE728: .word MOD04_021DE884 _021DE72C: .word MOD04_021DE86C + arm_func_end MOD04_021DE710 arm_func_start MOD04_021DE730 MOD04_021DE730: ; 0x021DE730 @@ -6442,6 +6543,7 @@ MOD04_021DE730: ; 0x021DE730 ldmia sp!, {r4, pc} .align 2, 0 _021DE770: .word UNK04_02210520 + arm_func_end MOD04_021DE730 arm_func_start MOD04_021DE774 MOD04_021DE774: ; 0x021DE774 @@ -6519,6 +6621,7 @@ _021DE85C: .word 0xFFFF86D4 _021DE860: .word 0xFFFF86CA _021DE864: .word 0xFFFF86E8 _021DE868: .word 0xFFFF86DF + arm_func_end MOD04_021DE774 arm_func_start MOD04_021DE86C MOD04_021DE86C: ; 0x021DE86C @@ -6529,6 +6632,7 @@ MOD04_021DE86C: ; 0x021DE86C bx ip .align 2, 0 _021DE880: .word MOD04_021DD904 + arm_func_end MOD04_021DE86C arm_func_start MOD04_021DE884 MOD04_021DE884: ; 0x021DE884 @@ -6539,6 +6643,7 @@ MOD04_021DE884: ; 0x021DE884 bx ip .align 2, 0 _021DE898: .word MOD04_021DD924 + arm_func_end MOD04_021DE884 arm_func_start MOD04_021DE89C MOD04_021DE89C: ; 0x021DE89C @@ -6555,6 +6660,7 @@ _021DE8AC: _021DE8C0: mov r0, r2 bx lr + arm_func_end MOD04_021DE89C arm_func_start MOD04_021DE8C8 MOD04_021DE8C8: ; 0x021DE8C8 @@ -6635,6 +6741,7 @@ _021DE9E4: .word UNK04_02210524 _021DE9E8: .word 0x6C078965 _021DE9EC: .word 0x5D588B65 _021DE9F0: .word 0x00269EC3 + arm_func_end MOD04_021DE8C8 arm_func_start MOD04_021DE9F4 MOD04_021DE9F4: ; 0x021DE9F4 @@ -6712,6 +6819,7 @@ _021DEAE8: strb r1, [r4, r6] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021DE9F4 arm_func_start MOD04_021DEB0C MOD04_021DEB0C: ; 0x021DEB0C @@ -6733,6 +6841,7 @@ MOD04_021DEB0C: ; 0x021DEB0C bl strlen add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021DEB0C arm_func_start MOD04_021DEB54 MOD04_021DEB54: ; 0x021DEB54 @@ -6752,6 +6861,7 @@ MOD04_021DEB54: ; 0x021DEB54 ldmia sp!, {r4, pc} .align 2, 0 _021DEB8C: .word UNK04_0220D328 + arm_func_end MOD04_021DEB54 arm_func_start MOD04_021DEB90 MOD04_021DEB90: ; 0x021DEB90 @@ -6774,6 +6884,7 @@ MOD04_021DEB90: ; 0x021DEB90 _021DEBCC: .word UNK04_02210540 _021DEBD0: .word 0xFFFE8515 _021DEBD4: .word UNK04_0221053C + arm_func_end MOD04_021DEB90 arm_func_start MOD04_021DEBD8 MOD04_021DEBD8: ; 0x021DEBD8 @@ -6781,6 +6892,7 @@ MOD04_021DEBD8: ; 0x021DEBD8 bx ip .align 2, 0 _021DEBE0: .word MOD04_021EAC1C + arm_func_end MOD04_021DEBD8 arm_func_start MOD04_021DEBE4 MOD04_021DEBE4: ; 0x021DEBE4 @@ -7028,6 +7140,7 @@ _021DEF50: .word 0xFFFFE24F _021DEF54: .word UNK04_0221053C _021DEF58: .word UNK04_02210544 _021DEF5C: .word UNK04_0220D334 + arm_func_end MOD04_021DEBE4 arm_func_start MOD04_021DEF60 MOD04_021DEF60: ; 0x021DEF60 @@ -7035,6 +7148,7 @@ MOD04_021DEF60: ; 0x021DEF60 bx ip .align 2, 0 _021DEF68: .word MOD04_021EAC5C + arm_func_end MOD04_021DEF60 arm_func_start MOD04_021DEF6C MOD04_021DEF6C: ; 0x021DEF6C @@ -7130,6 +7244,7 @@ _021DF0A8: _021DF0C8: .word UNK04_0220D338 _021DF0CC: .word UNK04_0220D340 _021DF0D0: .word UNK04_0221053C + arm_func_end MOD04_021DEF6C arm_func_start MOD04_021DF0D4 MOD04_021DF0D4: ; 0x021DF0D4 @@ -7156,6 +7271,7 @@ MOD04_021DF0D4: ; 0x021DF0D4 _021DF120: .word 0x00000603 _021DF124: .word 0x00000901 _021DF128: .word 0x00000B01 + arm_func_end MOD04_021DF0D4 arm_func_start MOD04_021DF12C MOD04_021DF12C: ; 0x021DF12C @@ -7265,6 +7381,7 @@ _021DF26C: .align 2, 0 _021DF2AC: .word UNK04_0221053C _021DF2B0: .word 0x00000624 + arm_func_end MOD04_021DF12C arm_func_start MOD04_021DF2B4 MOD04_021DF2B4: ; 0x021DF2B4 @@ -7290,6 +7407,7 @@ _021DF2DC: ldmia sp!, {r4, r5, pc} .align 2, 0 _021DF300: .word UNK04_0221053C + arm_func_end MOD04_021DF2B4 arm_func_start MOD04_021DF304 MOD04_021DF304: ; 0x021DF304 @@ -7323,6 +7441,7 @@ _021DF33C: ldmia sp!, {r4, r5, pc} .align 2, 0 _021DF36C: .word UNK04_0221053C + arm_func_end MOD04_021DF304 arm_func_start MOD04_021DF370 MOD04_021DF370: ; 0x021DF370 @@ -7377,6 +7496,7 @@ _021DF408: ldmia sp!, {r4, pc} .align 2, 0 _021DF410: .word 0xFFFEFA48 + arm_func_end MOD04_021DF370 arm_func_start MOD04_021DF414 MOD04_021DF414: ; 0x021DF414 @@ -7465,6 +7585,7 @@ _021DF520: .word 0xFFFF11B8 _021DF524: .word 0xFFFEC398 _021DF528: .word 0xFFFEEAA8 _021DF52C: .word 0xFFFE9C88 + arm_func_end MOD04_021DF414 arm_func_start MOD04_021DF530 MOD04_021DF530: ; 0x021DF530 @@ -7485,6 +7606,7 @@ _021DF560: mov r0, lr add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021DF530 arm_func_start MOD04_021DF56C MOD04_021DF56C: ; 0x021DF56C @@ -7514,6 +7636,7 @@ _021DF5B0: bl MOD04_021E8830 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021DF56C arm_func_start MOD04_021DF5CC MOD04_021DF5CC: ; 0x021DF5CC @@ -7526,10 +7649,12 @@ MOD04_021DF5CC: ; 0x021DF5CC bx lr .align 2, 0 _021DF5E8: .word UNK04_0221053C + arm_func_end MOD04_021DF5CC arm_func_start MOD04_021DF5EC MOD04_021DF5EC: ; 0x021DF5EC bx lr + arm_func_end MOD04_021DF5EC arm_func_start MOD04_021DF5F0 MOD04_021DF5F0: ; 0x021DF5F0 @@ -7554,6 +7679,7 @@ _021DF620: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021DF634: .word UNK04_02210544 + arm_func_end MOD04_021DF5F0 arm_func_start MOD04_021DF638 MOD04_021DF638: ; 0x021DF638 @@ -7562,6 +7688,7 @@ MOD04_021DF638: ; 0x021DF638 bx lr .align 2, 0 _021DF644: .word UNK04_022105C4 + arm_func_end MOD04_021DF638 arm_func_start MOD04_021DF648 MOD04_021DF648: ; 0x021DF648 @@ -7597,6 +7724,7 @@ _021DF684: ldmfd sp!, {pc} .align 2, 0 _021DF6B8: .word UNK04_0221053C + arm_func_end MOD04_021DF648 arm_func_start MOD04_021DF6BC MOD04_021DF6BC: ; 0x021DF6BC @@ -7605,6 +7733,7 @@ MOD04_021DF6BC: ; 0x021DF6BC bx lr .align 2, 0 _021DF6C8: .word UNK04_02210544 + arm_func_end MOD04_021DF6BC arm_func_start MOD04_021DF6CC MOD04_021DF6CC: ; 0x021DF6CC @@ -7623,6 +7752,7 @@ MOD04_021DF6CC: ; 0x021DF6CC .align 2, 0 _021DF6FC: .word UNK04_02210544 _021DF700: .word UNK04_022105C4 + arm_func_end MOD04_021DF6CC arm_func_start MOD04_021DF704 MOD04_021DF704: ; 0x021DF704 @@ -7639,6 +7769,7 @@ _021DF70C: bx lr .align 2, 0 _021DF72C: .word UNK04_02210544 + arm_func_end MOD04_021DF704 arm_func_start MOD04_021DF730 MOD04_021DF730: ; 0x021DF730 @@ -7648,6 +7779,7 @@ MOD04_021DF730: ; 0x021DF730 ldrb r0, [r0] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021DF730 arm_func_start MOD04_021DF748 MOD04_021DF748: ; 0x021DF748 @@ -7657,6 +7789,7 @@ MOD04_021DF748: ; 0x021DF748 ldrb r0, [r0, #1] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021DF748 arm_func_start MOD04_021DF760 MOD04_021DF760: ; 0x021DF760 @@ -7688,6 +7821,7 @@ _021DF7A8: .align 2, 0 _021DF7BC: .word UNK04_0221053C _021DF7C0: .word UNK04_02210544 + arm_func_end MOD04_021DF760 arm_func_start MOD04_021DF7C4 MOD04_021DF7C4: ; 0x021DF7C4 @@ -7742,6 +7876,7 @@ _021DF87C: .word UNK04_0221053C _021DF880: .word MOD04_021DEB90 _021DF884: .word MOD04_021E9204 _021DF888: .word MOD04_021E9464 + arm_func_end MOD04_021DF7C4 arm_func_start MOD04_021DF88C MOD04_021DF88C: ; 0x021DF88C @@ -7753,6 +7888,7 @@ MOD04_021DF88C: ; 0x021DF88C bx lr .align 2, 0 _021DF8A4: .word UNK04_0221053C + arm_func_end MOD04_021DF88C arm_func_start MOD04_021DF8A8 MOD04_021DF8A8: ; 0x021DF8A8 @@ -7776,6 +7912,7 @@ MOD04_021DF8A8: ; 0x021DF8A8 ldmfd sp!, {pc} .align 2, 0 _021DF8F0: .word UNK04_0221053C + arm_func_end MOD04_021DF8A8 arm_func_start MOD04_021DF8F4 MOD04_021DF8F4: ; 0x021DF8F4 @@ -7808,6 +7945,7 @@ _021DF948: .align 2, 0 _021DF954: .word UNK04_0221053C _021DF958: .word 0x00000624 + arm_func_end MOD04_021DF8F4 arm_func_start MOD04_021DF95C MOD04_021DF95C: ; 0x021DF95C @@ -7819,6 +7957,7 @@ MOD04_021DF95C: ; 0x021DF95C bx lr .align 2, 0 _021DF974: .word UNK04_0221053C + arm_func_end MOD04_021DF95C arm_func_start MOD04_021DF978 MOD04_021DF978: ; 0x021DF978 @@ -7848,6 +7987,7 @@ _021DF9C0: ldmfd sp!, {pc} .align 2, 0 _021DF9D0: .word UNK04_0221053C + arm_func_end MOD04_021DF978 arm_func_start MOD04_021DF9D4 MOD04_021DF9D4: ; 0x021DF9D4 @@ -7881,6 +8021,7 @@ _021DFA1C: ldmia sp!, {r4, pc} .align 2, 0 _021DFA3C: .word UNK04_0221053C + arm_func_end MOD04_021DF9D4 arm_func_start MOD04_021DFA40 MOD04_021DFA40: ; 0x021DFA40 @@ -7934,6 +8075,7 @@ _021DFAC0: .align 2, 0 _021DFAF0: .word UNK04_0221053C _021DFAF4: .word UNK04_0220D334 + arm_func_end MOD04_021DFA40 arm_func_start MOD04_021DFAF8 MOD04_021DFAF8: ; 0x021DFAF8 @@ -7948,6 +8090,7 @@ MOD04_021DFAF8: ; 0x021DFAF8 bx lr .align 2, 0 _021DFB1C: .word UNK04_0221053C + arm_func_end MOD04_021DFAF8 arm_func_start MOD04_021DFB20 MOD04_021DFB20: ; 0x021DFB20 @@ -8084,6 +8227,7 @@ _021DFD08: .word UNK04_0220D344 _021DFD0C: .word UNK04_0220D348 _021DFD10: .word MOD04_021DF12C _021DFD14: .word UNK04_0220D334 + arm_func_end MOD04_021DFB20 arm_func_start MOD04_021DFD18 MOD04_021DFD18: ; 0x021DFD18 @@ -8131,6 +8275,7 @@ _021DFD5C: .align 2, 0 _021DFDB4: .word UNK04_0221053C _021DFDB8: .word MOD04_021DF12C + arm_func_end MOD04_021DFD18 arm_func_start MOD04_021DFDBC MOD04_021DFDBC: ; 0x021DFDBC @@ -8179,6 +8324,7 @@ _021DFE04: .align 2, 0 _021DFE5C: .word UNK04_0221053C _021DFE60: .word MOD04_021DF2B4 + arm_func_end MOD04_021DFDBC arm_func_start MOD04_021DFE64 MOD04_021DFE64: ; 0x021DFE64 @@ -8258,6 +8404,7 @@ _021DFF4C: .align 2, 0 _021DFF6C: .word UNK04_0221053C _021DFF70: .word 0xFFFF1596 + arm_func_end MOD04_021DFE64 arm_func_start MOD04_021DFF74 MOD04_021DFF74: ; 0x021DFF74 @@ -8439,6 +8586,7 @@ _021E01F0: .word MOD04_021E20C8 _021E01F4: .word MOD04_021E1FE4 _021E01F8: .word 0xFFFFB172 _021E01FC: .word 0xFFFFB17B + arm_func_end MOD04_021DFF74 arm_func_start MOD04_021E0200 MOD04_021E0200: ; 0x021E0200 @@ -8540,6 +8688,7 @@ _021E035C: ldmfd sp!, {pc} .align 2, 0 _021E0370: .word UNK04_0221053C + arm_func_end MOD04_021E0200 arm_func_start MOD04_021E0374 MOD04_021E0374: ; 0x021E0374 @@ -8708,6 +8857,7 @@ _021E05EC: .word UNK04_02210F94 _021E05F0: .word UNK04_02211094 _021E05F4: .word MOD04_021DF304 _021E05F8: .word 0x000007D8 + arm_func_end MOD04_021E0374 arm_func_start MOD04_021E05FC MOD04_021E05FC: ; 0x021E05FC @@ -8724,6 +8874,7 @@ _021E061C: bx lr .align 2, 0 _021E0624: .word UNK04_022106C8 + arm_func_end MOD04_021E05FC arm_func_start MOD04_021E0628 MOD04_021E0628: ; 0x021E0628 @@ -8842,6 +8993,7 @@ _021E07D4: .word MOD04_021E0628 _021E07D8: .word MOD04_021E0C80 _021E07DC: .word UNK04_022106C4 _021E07E0: .word UNK04_022106CC + arm_func_end MOD04_021E0628 arm_func_start MOD04_021E07E4 MOD04_021E07E4: ; 0x021E07E4 @@ -8984,6 +9136,7 @@ _021E09F0: .word 0x00002710 _021E09F4: .word 0x00000251 _021E09F8: .word MOD04_021DD944 _021E09FC: .word MOD04_021DD904 + arm_func_end MOD04_021E07E4 arm_func_start MOD04_021E0A00 MOD04_021E0A00: ; 0x021E0A00 @@ -9113,6 +9266,7 @@ _021E0BD0: .word 0x00000251 _021E0BD4: .word MOD04_021DD944 _021E0BD8: .word MOD04_021DD904 _021E0BDC: .word 0x00001C10 + arm_func_end MOD04_021E0A00 arm_func_start MOD04_021E0BE0 MOD04_021E0BE0: ; 0x021E0BE0 @@ -9157,6 +9311,7 @@ MOD04_021E0BE0: ; 0x021E0BE0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E0C7C: .word UNK04_022106C8 + arm_func_end MOD04_021E0BE0 arm_func_start MOD04_021E0C80 MOD04_021E0C80: ; 0x021E0C80 @@ -9167,6 +9322,7 @@ MOD04_021E0C80: ; 0x021E0C80 .align 2, 0 _021E0C90: .word MOD04_021E0BE0 _021E0C94: .word MOD04_021E0C98 + arm_func_end MOD04_021E0C80 arm_func_start MOD04_021E0C98 MOD04_021E0C98: ; 0x021E0C98 @@ -9244,6 +9400,7 @@ _021E0DA0: .word UNK04_022106C8 _021E0DA4: .word UNK04_0220D34C _021E0DA8: .word 0xFFFF15A0 _021E0DAC: .word MOD04_021E0628 + arm_func_end MOD04_021E0C98 arm_func_start MOD04_021E0DB0 MOD04_021E0DB0: ; 0x021E0DB0 @@ -9283,6 +9440,7 @@ _021E0E0C: ldmia sp!, {r4, pc} .align 2, 0 _021E0E20: .word 0xFFFF11B8 + arm_func_end MOD04_021E0DB0 arm_func_start MOD04_021E0E24 MOD04_021E0E24: ; 0x021E0E24 @@ -9296,6 +9454,7 @@ MOD04_021E0E24: ; 0x021E0E24 bx lr .align 2, 0 _021E0E44: .word UNK04_022106C8 + arm_func_end MOD04_021E0E24 arm_func_start MOD04_021E0E48 MOD04_021E0E48: ; 0x021E0E48 @@ -9326,6 +9485,7 @@ _021E0E94: ldmfd sp!, {pc} .align 2, 0 _021E0EA8: .word UNK04_022106C8 + arm_func_end MOD04_021E0E48 arm_func_start MOD04_021E0EAC MOD04_021E0EAC: ; 0x021E0EAC @@ -9352,6 +9512,7 @@ _021E0EF4: ldmia sp!, {r4, pc} .align 2, 0 _021E0EFC: .word UNK04_022106C8 + arm_func_end MOD04_021E0EAC arm_func_start MOD04_021E0F00 MOD04_021E0F00: ; 0x021E0F00 @@ -9363,6 +9524,7 @@ MOD04_021E0F00: ; 0x021E0F00 bx lr .align 2, 0 _021E0F18: .word UNK04_022106C8 + arm_func_end MOD04_021E0F00 arm_func_start MOD04_021E0F1C MOD04_021E0F1C: ; 0x021E0F1C @@ -9442,6 +9604,7 @@ _021E1024: .word UNK04_022106C8 _021E1028: .word 0x000082EA _021E102C: .word 0x0000EA60 _021E1030: .word 0xFFFF1172 + arm_func_end MOD04_021E0F1C arm_func_start MOD04_021E1034 MOD04_021E1034: ; 0x021E1034 @@ -9462,6 +9625,7 @@ MOD04_021E1034: ; 0x021E1034 .align 2, 0 _021E106C: .word MOD04_021E0C80 _021E1070: .word UNK04_022106C8 + arm_func_end MOD04_021E1034 arm_func_start MOD04_021E1074 MOD04_021E1074: ; 0x021E1074 @@ -9499,6 +9663,7 @@ MOD04_021E1074: ; 0x021E1074 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E10F4: .word UNK04_022106C8 + arm_func_end MOD04_021E1074 arm_func_start MOD04_021E10F8 MOD04_021E10F8: ; 0x021E10F8 @@ -9508,6 +9673,7 @@ MOD04_021E10F8: ; 0x021E10F8 bx lr .align 2, 0 _021E1108: .word UNK04_022106D0 + arm_func_end MOD04_021E10F8 arm_func_start MOD04_021E110C MOD04_021E110C: ; 0x021E110C @@ -9625,6 +9791,7 @@ _021E129C: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021E12B4: .word UNK04_022106D0 + arm_func_end MOD04_021E110C arm_func_start MOD04_021E12B8 MOD04_021E12B8: ; 0x021E12B8 @@ -9722,6 +9889,7 @@ _021E13FC: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021E1410: .word UNK04_022106D0 + arm_func_end MOD04_021E12B8 arm_func_start MOD04_021E1414 MOD04_021E1414: ; 0x021E1414 @@ -9889,6 +10057,7 @@ _021E1648: .align 2, 0 _021E1670: .word UNK04_022106D0 _021E1674: .word 0x00000601 + arm_func_end MOD04_021E1414 arm_func_start MOD04_021E1678 MOD04_021E1678: ; 0x021E1678 @@ -9928,6 +10097,7 @@ _021E16D4: ldmia sp!, {r4, pc} .align 2, 0 _021E16E8: .word 0xFFFEEAA8 + arm_func_end MOD04_021E1678 arm_func_start MOD04_021E16EC MOD04_021E16EC: ; 0x021E16EC @@ -9989,6 +10159,7 @@ _021E1790: ldmia sp!, {r4, r5, pc} .align 2, 0 _021E17B8: .word UNK04_022106D0 + arm_func_end MOD04_021E16EC arm_func_start MOD04_021E17BC MOD04_021E17BC: ; 0x021E17BC @@ -10006,6 +10177,7 @@ MOD04_021E17BC: ; 0x021E17BC .align 2, 0 _021E17E8: .word UNK04_022106D0 _021E17EC: .word UNK04_0220D350 + arm_func_end MOD04_021E17BC arm_func_start MOD04_021E17F0 MOD04_021E17F0: ; 0x021E17F0 @@ -10085,6 +10257,7 @@ _021E18F0: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021E18FC: .word UNK04_022106D0 + arm_func_end MOD04_021E17F0 arm_func_start MOD04_021E1900 MOD04_021E1900: ; 0x021E1900 @@ -10140,6 +10313,7 @@ _021E19A8: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021E19B4: .word UNK04_022106D0 + arm_func_end MOD04_021E1900 arm_func_start MOD04_021E19B8 MOD04_021E19B8: ; 0x021E19B8 @@ -10170,6 +10344,7 @@ MOD04_021E19B8: ; 0x021E19B8 ldmia sp!, {r4, r5, pc} .align 2, 0 _021E1A1C: .word UNK04_022106D0 + arm_func_end MOD04_021E19B8 arm_func_start MOD04_021E1A20 MOD04_021E1A20: ; 0x021E1A20 @@ -10190,6 +10365,7 @@ MOD04_021E1A20: ; 0x021E1A20 ldmfd sp!, {pc} .align 2, 0 _021E1A5C: .word UNK04_022106D0 + arm_func_end MOD04_021E1A20 arm_func_start MOD04_021E1A60 MOD04_021E1A60: ; 0x021E1A60 @@ -10359,6 +10535,7 @@ _021E1C9C: .align 2, 0 _021E1CC4: .word UNK04_022106D0 _021E1CC8: .word MOD04_021E1414 + arm_func_end MOD04_021E1A60 arm_func_start MOD04_021E1CCC MOD04_021E1CCC: ; 0x021E1CCC @@ -10375,6 +10552,7 @@ MOD04_021E1CCC: ; 0x021E1CCC bx lr .align 2, 0 _021E1CF8: .word UNK04_022106D0 + arm_func_end MOD04_021E1CCC arm_func_start MOD04_021E1CFC MOD04_021E1CFC: ; 0x021E1CFC @@ -10417,6 +10595,7 @@ _021E1D7C: .align 2, 0 _021E1D88: .word UNK04_022106D0 _021E1D8C: .word 0x000082EA + arm_func_end MOD04_021E1CFC arm_func_start MOD04_021E1D90 MOD04_021E1D90: ; 0x021E1D90 @@ -10426,6 +10605,7 @@ MOD04_021E1D90: ; 0x021E1D90 bx lr .align 2, 0 _021E1DA0: .word UNK04_022106D0 + arm_func_end MOD04_021E1D90 arm_func_start MOD04_021E1DA4 MOD04_021E1DA4: ; 0x021E1DA4 @@ -10466,6 +10646,7 @@ _021E1DD8: ldmia sp!, {r4, pc} .align 2, 0 _021E1E2C: .word UNK04_022106D0 + arm_func_end MOD04_021E1DA4 arm_func_start MOD04_021E1E30 MOD04_021E1E30: ; 0x021E1E30 @@ -10513,6 +10694,7 @@ _021E1E64: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E1ED0: .word UNK04_022106D0 + arm_func_end MOD04_021E1E30 arm_func_start MOD04_021E1ED4 MOD04_021E1ED4: ; 0x021E1ED4 @@ -10534,6 +10716,7 @@ MOD04_021E1ED4: ; 0x021E1ED4 ldmfd sp!, {pc} .align 2, 0 _021E1F14: .word UNK04_022106D0 + arm_func_end MOD04_021E1ED4 arm_func_start MOD04_021E1F18 MOD04_021E1F18: ; 0x021E1F18 @@ -10569,6 +10752,7 @@ _021E1F78: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E1F80: .word UNK04_022106D0 + arm_func_end MOD04_021E1F18 arm_func_start MOD04_021E1F84 MOD04_021E1F84: ; 0x021E1F84 @@ -10598,6 +10782,7 @@ _021E1FD4: ldmia sp!, {r4, r5, pc} .align 2, 0 _021E1FE0: .word UNK04_022106D0 + arm_func_end MOD04_021E1F84 arm_func_start MOD04_021E1FE4 MOD04_021E1FE4: ; 0x021E1FE4 @@ -10635,6 +10820,7 @@ MOD04_021E1FE4: ; 0x021E1FE4 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E2064: .word UNK04_022106D0 + arm_func_end MOD04_021E1FE4 arm_func_start MOD04_021E2068 MOD04_021E2068: ; 0x021E2068 @@ -10663,6 +10849,7 @@ MOD04_021E2068: ; 0x021E2068 .align 2, 0 _021E20C0: .word UNK04_0220D354 _021E20C4: .word MOD04_021E110C + arm_func_end MOD04_021E2068 arm_func_start MOD04_021E20C8 MOD04_021E20C8: ; 0x021E20C8 @@ -10686,6 +10873,7 @@ MOD04_021E20C8: ; 0x021E20C8 .align 2, 0 _021E210C: .word UNK04_022106D0 _021E2110: .word MOD04_021E12B8 + arm_func_end MOD04_021E20C8 arm_func_start MOD04_021E2114 MOD04_021E2114: ; 0x021E2114 @@ -10715,6 +10903,7 @@ _021E2168: ldmia sp!, {r4, pc} .align 2, 0 _021E2170: .word UNK04_022106D0 + arm_func_end MOD04_021E2114 arm_func_start MOD04_021E2174 MOD04_021E2174: ; 0x021E2174 @@ -10764,6 +10953,7 @@ MOD04_021E2174: ; 0x021E2174 ldmia sp!, {r4, r5, pc} .align 2, 0 _021E2224: .word UNK04_022106D0 + arm_func_end MOD04_021E2174 arm_func_start MOD04_021E2228 MOD04_021E2228: ; 0x021E2228 @@ -10845,6 +11035,7 @@ _021E231C: ldmfd sp!, {pc} .align 2, 0 _021E2348: .word UNK04_022106D0 + arm_func_end MOD04_021E2228 arm_func_start MOD04_021E234C MOD04_021E234C: ; 0x021E234C @@ -10905,6 +11096,7 @@ MOD04_021E234C: ; 0x021E234C ldmia sp!, {r4, pc} .align 2, 0 _021E2428: .word UNK04_022106D0 + arm_func_end MOD04_021E234C arm_func_start MOD04_021E242C MOD04_021E242C: ; 0x021E242C @@ -10919,6 +11111,7 @@ MOD04_021E242C: ; 0x021E242C bx lr .align 2, 0 _021E2450: .word UNK04_022106D0 + arm_func_end MOD04_021E242C arm_func_start MOD04_021E2454 MOD04_021E2454: ; 0x021E2454 @@ -10960,6 +11153,7 @@ _021E248C: ldmia sp!, {r4, r5, pc} .align 2, 0 _021E24DC: .word UNK04_022106D0 + arm_func_end MOD04_021E2454 arm_func_start MOD04_021E24E0 MOD04_021E24E0: ; 0x021E24E0 @@ -11003,6 +11197,7 @@ _021E2550: mov r0, r5 add sp, sp, #0x100 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E24E0 arm_func_start MOD04_021E2578 MOD04_021E2578: ; 0x021E2578 @@ -11015,6 +11210,7 @@ MOD04_021E2578: ; 0x021E2578 bl MOD04_021E24E0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E2578 arm_func_start MOD04_021E259C MOD04_021E259C: ; 0x021E259C @@ -11095,6 +11291,7 @@ _021E268C: .align 2, 0 _021E26B0: .word UNK04_0220D38C _021E26B4: .word UNK04_0220D390 + arm_func_end MOD04_021E259C arm_func_start MOD04_021E26B8 MOD04_021E26B8: ; 0x021E26B8 @@ -11105,6 +11302,7 @@ MOD04_021E26B8: ; 0x021E26B8 bx ip .align 2, 0 _021E26CC: .word MOD04_021E259C + arm_func_end MOD04_021E26B8 arm_func_start MOD04_021E26D0 MOD04_021E26D0: ; 0x021E26D0 @@ -11114,6 +11312,7 @@ MOD04_021E26D0: ; 0x021E26D0 bx lr .align 2, 0 _021E26E0: .word UNK04_022106D8 + arm_func_end MOD04_021E26D0 arm_func_start MOD04_021E26E4 MOD04_021E26E4: ; 0x021E26E4 @@ -11122,6 +11321,7 @@ MOD04_021E26E4: ; 0x021E26E4 bx lr .align 2, 0 _021E26F0: .word UNK04_022106D8 + arm_func_end MOD04_021E26E4 arm_func_start MOD04_021E26F4 MOD04_021E26F4: ; 0x021E26F4 @@ -11130,6 +11330,7 @@ MOD04_021E26F4: ; 0x021E26F4 bx lr .align 2, 0 _021E2700: .word UNK04_022106D8 + arm_func_end MOD04_021E26F4 arm_func_start MOD04_021E2704 MOD04_021E2704: ; 0x021E2704 @@ -11169,6 +11370,7 @@ _021E2774: ldmfd sp!, {pc} .align 2, 0 _021E2780: .word 0xFFFEAE6C + arm_func_end MOD04_021E2704 arm_func_start MOD04_021E2784 MOD04_021E2784: ; 0x021E2784 @@ -11435,10 +11637,12 @@ _021E2B04: .align 2, 0 _021E2B58: .word UNK04_0220D394 _021E2B5C: .word 0x00001388 + arm_func_end MOD04_021E2784 arm_func_start MOD04_021E2B60 MOD04_021E2B60: ; 0x021E2B60 bx lr + arm_func_end MOD04_021E2B60 arm_func_start MOD04_021E2B64 MOD04_021E2B64: ; 0x021E2B64 @@ -11514,6 +11718,7 @@ _021E2BD8: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021E2C74: .word UNK04_0220D398 + arm_func_end MOD04_021E2B64 arm_func_start MOD04_021E2C78 MOD04_021E2C78: ; 0x021E2C78 @@ -11566,6 +11771,7 @@ _021E2CF4: mov r1, #0xff strb r1, [r0, #0x3cc] ldmia sp!, {r4, pc} + arm_func_end MOD04_021E2C78 arm_func_start MOD04_021E2D2C MOD04_021E2D2C: ; 0x021E2D2C @@ -11579,6 +11785,7 @@ MOD04_021E2D2C: ; 0x021E2D2C strh r4, [r0, #0x1a] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021E2D2C arm_func_start MOD04_021E2D54 MOD04_021E2D54: ; 0x021E2D54 @@ -11586,11 +11793,13 @@ MOD04_021E2D54: ; 0x021E2D54 bx ip .align 2, 0 _021E2D5C: .word MOD04_021E3800 + arm_func_end MOD04_021E2D54 arm_func_start MOD04_021E2D60 MOD04_021E2D60: ; 0x021E2D60 mov r0, #0 bx lr + arm_func_end MOD04_021E2D60 arm_func_start MOD04_021E2D68 MOD04_021E2D68: ; 0x021E2D68 @@ -11640,14 +11849,17 @@ _021E2DF8: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E2E0C: .word UNK04_02210704 + arm_func_end MOD04_021E2D68 arm_func_start MOD04_021E2E10 MOD04_021E2E10: ; 0x021E2E10 bx lr + arm_func_end MOD04_021E2E10 arm_func_start MOD04_021E2E14 MOD04_021E2E14: ; 0x021E2E14 bx lr + arm_func_end MOD04_021E2E14 arm_func_start MOD04_021E2E18 MOD04_021E2E18: ; 0x021E2E18 @@ -11747,6 +11959,7 @@ _021E2F44: _021E2F5C: .word UNK04_02210704 _021E2F60: .word UNK04_02210705 _021E2F64: .word UNK04_0221070C + arm_func_end MOD04_021E2E18 arm_func_start MOD04_021E2F68 MOD04_021E2F68: ; 0x021E2F68 @@ -11849,6 +12062,7 @@ _021E3090: .align 2, 0 _021E30D8: .word UNK04_0220BAC4 _021E30DC: .word UNK04_0220D3A0 + arm_func_end MOD04_021E2F68 arm_func_start MOD04_021E30E0 MOD04_021E30E0: ; 0x021E30E0 @@ -11992,10 +12206,12 @@ _021E32C8: _021E32D4: .word UNK04_0220D3AC _021E32D8: .word 0x007FFFFF _021E32DC: .word UNK04_0220D3A0 + arm_func_end MOD04_021E30E0 arm_func_start MOD04_021E32E0 MOD04_021E32E0: ; 0x021E32E0 bx lr + arm_func_end MOD04_021E32E0 arm_func_start MOD04_021E32E4 MOD04_021E32E4: ; 0x021E32E4 @@ -12262,6 +12478,7 @@ _021E3684: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021E36AC: .word UNK04_0220D3AC + arm_func_end MOD04_021E32E4 arm_func_start MOD04_021E36B0 MOD04_021E36B0: ; 0x021E36B0 @@ -12316,6 +12533,7 @@ _021E3748: ldmia sp!, {r4, pc} .align 2, 0 _021E3750: .word 0xFFFEAC28 + arm_func_end MOD04_021E36B0 arm_func_start MOD04_021E3754 MOD04_021E3754: ; 0x021E3754 @@ -12344,6 +12562,7 @@ _021E3798: ldmia sp!, {r4, pc} .align 2, 0 _021E37A0: .word 0xFFFEB007 + arm_func_end MOD04_021E3754 arm_func_start MOD04_021E37A4 MOD04_021E37A4: ; 0x021E37A4 @@ -12374,6 +12593,7 @@ _021E37E8: ldmia sp!, {r4, pc} .align 2, 0 _021E37FC: .word 0xFFFEB010 + arm_func_end MOD04_021E37A4 arm_func_start MOD04_021E3800 MOD04_021E3800: ; 0x021E3800 @@ -12448,6 +12668,7 @@ _021E38D4: _021E38DC: .word 0xFFFEDEF0 _021E38E0: .word 0xFFFEB7E0 _021E38E4: .word 0xFFFE90D0 + arm_func_end MOD04_021E3800 arm_func_start MOD04_021E38E8 MOD04_021E38E8: ; 0x021E38E8 @@ -12497,6 +12718,7 @@ _021E3964: ldmia sp!, {r4, pc} .align 2, 0 _021E3978: .word 0xFFFEB3F8 + arm_func_end MOD04_021E38E8 arm_func_start MOD04_021E397C MOD04_021E397C: ; 0x021E397C @@ -12536,6 +12758,7 @@ _021E39D8: ldmia sp!, {r4, pc} .align 2, 0 _021E39EC: .word 0xFFFEC398 + arm_func_end MOD04_021E397C arm_func_start MOD04_021E39F0 MOD04_021E39F0: ; 0x021E39F0 @@ -12824,6 +13047,7 @@ _021E3DF8: _021E3E1C: .word UNK04_022106D4 _021E3E20: .word 0x000082EA _021E3E24: .word 0x00001770 + arm_func_end MOD04_021E39F0 arm_func_start MOD04_021E3E28 MOD04_021E3E28: ; 0x021E3E28 @@ -12857,6 +13081,7 @@ MOD04_021E3E28: ; 0x021E3E28 ldmia sp!, {r4, pc} .align 2, 0 _021E3E98: .word UNK04_022106D4 + arm_func_end MOD04_021E3E28 arm_func_start MOD04_021E3E9C MOD04_021E3E9C: ; 0x021E3E9C @@ -12870,6 +13095,7 @@ MOD04_021E3E9C: ; 0x021E3E9C str r0, [r4, #0x1f8] str r1, [r4, #0x1fc] ldmia sp!, {r4, pc} + arm_func_end MOD04_021E3E9C arm_func_start MOD04_021E3EC4 MOD04_021E3EC4: ; 0x021E3EC4 @@ -12901,6 +13127,7 @@ _021E3EFC: _021E3F20: mov r0, r6 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E3EC4 arm_func_start MOD04_021E3F28 MOD04_021E3F28: ; 0x021E3F28 @@ -12935,6 +13162,7 @@ _021E3F8C: mov r0, #0xff add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021E3F28 arm_func_start MOD04_021E3F98 MOD04_021E3F98: ; 0x021E3F98 @@ -12995,6 +13223,7 @@ _021E4064: .word UNK04_0220D3CC _021E4068: .word UNK04_0220D3D8 _021E406C: .word UNK04_0220D3E4 _021E4070: .word UNK04_0220D3AC + arm_func_end MOD04_021E3F98 arm_func_start MOD04_021E4074 MOD04_021E4074: ; 0x021E4074 @@ -13033,6 +13262,7 @@ _021E40E8: mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021E4074 arm_func_start MOD04_021E40F4 MOD04_021E40F4: ; 0x021E40F4 @@ -13068,6 +13298,7 @@ _021E413C: _021E415C: mov r0, r6 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E40F4 arm_func_start MOD04_021E4164 MOD04_021E4164: ; 0x021E4164 @@ -13098,6 +13329,7 @@ _021E4194: .align 2, 0 _021E41BC: .word UNK04_02210704 _021E41C0: .word 0x00000738 + arm_func_end MOD04_021E4164 arm_func_start MOD04_021E41C4 MOD04_021E41C4: ; 0x021E41C4 @@ -13248,6 +13480,7 @@ _021E43CC: .align 2, 0 _021E43D8: .word 0x000082EA _021E43DC: .word 0x00001770 + arm_func_end MOD04_021E41C4 arm_func_start MOD04_021E43E0 MOD04_021E43E0: ; 0x021E43E0 @@ -13399,6 +13632,7 @@ _021E45F8: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E4600: .word 0x000082EA + arm_func_end MOD04_021E43E0 arm_func_start MOD04_021E4604 MOD04_021E4604: ; 0x021E4604 @@ -13435,6 +13669,7 @@ _021E4630: mov r0, #1 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E4604 arm_func_start MOD04_021E4684 MOD04_021E4684: ; 0x021E4684 @@ -13616,6 +13851,7 @@ _021E48FC: .align 2, 0 _021E4908: .word 0x000082EA _021E490C: .word 0x00001770 + arm_func_end MOD04_021E4684 arm_func_start MOD04_021E4910 MOD04_021E4910: ; 0x021E4910 @@ -13683,6 +13919,7 @@ _021E49D0: str r1, [r4, #0x1e4] add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E4910 arm_func_start MOD04_021E4A00 MOD04_021E4A00: ; 0x021E4A00 @@ -13775,6 +14012,7 @@ _021E4B28: mov r0, #1 add sp, sp, #0x108 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end MOD04_021E4A00 arm_func_start MOD04_021E4B40 MOD04_021E4B40: ; 0x021E4B40 @@ -13792,6 +14030,7 @@ MOD04_021E4B40: ; 0x021E4B40 strb r1, [r0, #0x1a8] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E4B40 arm_func_start MOD04_021E4B78 MOD04_021E4B78: ; 0x021E4B78 @@ -13827,6 +14066,7 @@ _021E4BD4: mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021E4B78 arm_func_start MOD04_021E4BF4 MOD04_021E4BF4: ; 0x021E4BF4 @@ -13881,6 +14121,7 @@ _021E4CA4: _021E4CAC: mov r0, #0 ldmia sp!, {r4, pc} + arm_func_end MOD04_021E4BF4 arm_func_start MOD04_021E4CB4 MOD04_021E4CB4: ; 0x021E4CB4 @@ -13901,6 +14142,7 @@ MOD04_021E4CB4: ; 0x021E4CB4 bl MOD04_021E4CF8 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E4CB4 arm_func_start MOD04_021E4CF8 MOD04_021E4CF8: ; 0x021E4CF8 @@ -13974,6 +14216,7 @@ _021E4DC8: bl MOD04_021E5D30 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E4CF8 arm_func_start MOD04_021E4E00 MOD04_021E4E00: ; 0x021E4E00 @@ -14031,6 +14274,7 @@ _021E4EC8: mov r0, r4 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021E4E00 arm_func_start MOD04_021E4ED4 MOD04_021E4ED4: ; 0x021E4ED4 @@ -14084,6 +14328,7 @@ _021E4F28: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021E4F90: .word UNK04_0220D3F0 + arm_func_end MOD04_021E4ED4 arm_func_start MOD04_021E4F94 MOD04_021E4F94: ; 0x021E4F94 @@ -14201,6 +14446,7 @@ _021E512C: bl MOD04_021E4ED4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E4F94 arm_func_start MOD04_021E5138 MOD04_021E5138: ; 0x021E5138 @@ -14242,6 +14488,7 @@ _021E51AC: _021E51B8: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E5138 arm_func_start MOD04_021E51C0 MOD04_021E51C0: ; 0x021E51C0 @@ -14684,6 +14931,7 @@ _021E57E8: .align 2, 0 _021E581C: .word UNK04_0220D3F0 _021E5820: .word UNK04_022106DC + arm_func_end MOD04_021E51C0 arm_func_start MOD04_021E5824 MOD04_021E5824: ; 0x021E5824 @@ -14746,6 +14994,7 @@ _021E58BC: mov r0, r1 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_021E5824 arm_func_start MOD04_021E5908 MOD04_021E5908: ; 0x021E5908 @@ -14806,6 +15055,7 @@ _021E59C4: ldmia sp!, {r4, r5, pc} .align 2, 0 _021E59D0: .word 0xFFFEC5D2 + arm_func_end MOD04_021E5908 arm_func_start MOD04_021E59D4 MOD04_021E59D4: ; 0x021E59D4 @@ -14955,6 +15205,7 @@ _021E5BD0: _021E5BE8: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E59D4 arm_func_start MOD04_021E5BF0 MOD04_021E5BF0: ; 0x021E5BF0 @@ -14979,6 +15230,7 @@ MOD04_021E5BF0: ; 0x021E5BF0 mov r0, r4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021E5BF0 arm_func_start MOD04_021E5C44 MOD04_021E5C44: ; 0x021E5C44 @@ -15045,6 +15297,7 @@ _021E5D20: ldmia sp!, {r4, r5, pc} .align 2, 0 _021E5D2C: .word 0xFFFEC5E6 + arm_func_end MOD04_021E5C44 arm_func_start MOD04_021E5D30 MOD04_021E5D30: ; 0x021E5D30 @@ -15251,6 +15504,7 @@ _021E6028: .word 0x00000BB8 _021E602C: .word UNK04_0220D3F4 _021E6030: .word UNK04_0220D3F8 _021E6034: .word UNK04_0220D3FC + arm_func_end MOD04_021E5D30 arm_func_start MOD04_021E6038 MOD04_021E6038: ; 0x021E6038 @@ -15369,6 +15623,7 @@ _021E6160: .align 2, 0 _021E61E4: .word UNK04_0220D3AC _021E61E8: .word 0x00001770 + arm_func_end MOD04_021E6038 arm_func_start MOD04_021E61EC MOD04_021E61EC: ; 0x021E61EC @@ -15385,6 +15640,7 @@ _021E6210: mov r0, r4 bl MOD04_021E397C ldmia sp!, {r4, pc} + arm_func_end MOD04_021E61EC arm_func_start MOD04_021E621C MOD04_021E621C: ; 0x021E621C @@ -15408,6 +15664,7 @@ _021E6250: bl MOD04_021E26E4 str r6, [r0, #0x34c] ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E621C arm_func_start MOD04_021E6268 MOD04_021E6268: ; 0x021E6268 @@ -15526,6 +15783,7 @@ _021E6414: mov r0, #0 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_021E6268 arm_func_start MOD04_021E6428 MOD04_021E6428: ; 0x021E6428 @@ -15746,6 +16004,7 @@ _021E6724: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021E672C: .word UNK04_022106DC + arm_func_end MOD04_021E6428 arm_func_start MOD04_021E6730 MOD04_021E6730: ; 0x021E6730 @@ -16770,6 +17029,7 @@ _021E7608: .align 2, 0 _021E7614: .word UNK04_022106D4 _021E7618: .word 0x000082EA + arm_func_end MOD04_021E6730 arm_func_start MOD04_021E761C MOD04_021E761C: ; 0x021E761C @@ -16818,6 +17078,7 @@ _021E767C: strb r1, [r4, r5] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_021E761C arm_func_start MOD04_021E76C8 MOD04_021E76C8: ; 0x021E76C8 @@ -16864,6 +17125,7 @@ _021E7748: _021E7760: .word UNK04_0220D410 _021E7764: .word UNK04_0220D400 _021E7768: .word UNK04_0220D408 + arm_func_end MOD04_021E76C8 arm_func_start MOD04_021E776C MOD04_021E776C: ; 0x021E776C @@ -16941,6 +17203,7 @@ _021E781C: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _021E7880: .word UNK04_0220D398 + arm_func_end MOD04_021E776C arm_func_start MOD04_021E7884 MOD04_021E7884: ; 0x021E7884 @@ -17065,6 +17328,7 @@ _021E7A30: .align 2, 0 _021E7A3C: .word UNK04_0220D394 _021E7A40: .word UNK04_0220D414 + arm_func_end MOD04_021E7884 arm_func_start MOD04_021E7A44 MOD04_021E7A44: ; 0x021E7A44 @@ -17119,6 +17383,7 @@ _021E7AA8: .align 2, 0 _021E7AFC: .word MOD04_021E2784 _021E7B00: .word MOD04_021E2B60 + arm_func_end MOD04_021E7A44 arm_func_start MOD04_021E7B04 MOD04_021E7B04: ; 0x021E7B04 @@ -17322,6 +17587,7 @@ _021E7DE0: .align 2, 0 _021E7DEC: .word 0x0000FFFF _021E7DF0: .word 0x0000A8C0 + arm_func_end MOD04_021E7B04 arm_func_start MOD04_021E7DF4 MOD04_021E7DF4: ; 0x021E7DF4 @@ -17352,6 +17618,7 @@ _021E7E4C: .word UNK04_0220D3CC _021E7E50: .word UNK04_0220D3D8 _021E7E54: .word UNK04_0220D418 _021E7E58: .word UNK04_0220D3E4 + arm_func_end MOD04_021E7DF4 arm_func_start MOD04_021E7E5C MOD04_021E7E5C: ; 0x021E7E5C @@ -17483,6 +17750,7 @@ _021E8024: .word UNK04_022106E0 _021E8028: .word UNK04_0220D470 _021E802C: .word UNK04_0220D47C _021E8030: .word UNK04_0220D3AC + arm_func_end MOD04_021E7E5C arm_func_start MOD04_021E8034 MOD04_021E8034: ; 0x021E8034 @@ -17525,6 +17793,7 @@ _021E80A8: ldmfd sp!, {pc} .align 2, 0 _021E80C0: .word UNK04_022106E0 + arm_func_end MOD04_021E8034 arm_func_start MOD04_021E80C4 MOD04_021E80C4: ; 0x021E80C4 @@ -17573,6 +17842,7 @@ _021E8164: .word UNK04_0220D3CC _021E8168: .word UNK04_0220D3D8 _021E816C: .word UNK04_0220D3E4 _021E8170: .word UNK04_0220D3A0 + arm_func_end MOD04_021E80C4 arm_func_start MOD04_021E8174 MOD04_021E8174: ; 0x021E8174 @@ -17818,6 +18088,7 @@ _021E84A8: str r1, [r0, #0x470] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021E8174 arm_func_start MOD04_021E852C MOD04_021E852C: ; 0x021E852C @@ -17829,6 +18100,7 @@ MOD04_021E852C: ; 0x021E852C movne r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E852C arm_func_start MOD04_021E854C MOD04_021E854C: ; 0x021E854C @@ -17869,6 +18141,7 @@ _021E85B0: _021E85C8: .word UNK04_022106E0 _021E85CC: .word UNK04_022106D4 _021E85D0: .word UNK04_022106DC + arm_func_end MOD04_021E854C arm_func_start MOD04_021E85D4 MOD04_021E85D4: ; 0x021E85D4 @@ -17925,6 +18198,7 @@ _021E8694: .word UNK04_0220D394 _021E8698: .word UNK04_0220D484 _021E869C: .word UNK04_0220D488 _021E86A0: .word UNK04_0220D3F4 + arm_func_end MOD04_021E85D4 arm_func_start MOD04_021E86A4 MOD04_021E86A4: ; 0x021E86A4 @@ -17973,6 +18247,7 @@ _021E8730: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021E8748: .word UNK04_022106E4 + arm_func_end MOD04_021E86A4 arm_func_start MOD04_021E874C MOD04_021E874C: ; 0x021E874C @@ -17989,6 +18264,7 @@ MOD04_021E874C: ; 0x021E874C ldrb r0, [r0, #0xd] add r0, r0, #1 ldmia sp!, {r4, pc} + arm_func_end MOD04_021E874C arm_func_start MOD04_021E8780 MOD04_021E8780: ; 0x021E8780 @@ -18016,6 +18292,7 @@ _021E87CC: bl MOD04_021E26E4 strb r6, [r0, #0xe] ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E8780 arm_func_start MOD04_021E87D8 MOD04_021E87D8: ; 0x021E87D8 @@ -18030,6 +18307,7 @@ MOD04_021E87D8: ; 0x021E87D8 ldrb r0, [r0, #0xe] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E87D8 arm_func_start MOD04_021E8804 MOD04_021E8804: ; 0x021E8804 @@ -18044,6 +18322,7 @@ MOD04_021E8804: ; 0x021E8804 ldrb r0, [r0, #0xd] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E8804 arm_func_start MOD04_021E8830 MOD04_021E8830: ; 0x021E8830 @@ -18161,6 +18440,7 @@ _021E89E0: mov r0, fp add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_021E8830 arm_func_start MOD04_021E89EC MOD04_021E89EC: ; 0x021E89EC @@ -18192,6 +18472,7 @@ _021E8A3C: _021E8A48: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E89EC arm_func_start MOD04_021E8A50 MOD04_021E8A50: ; 0x021E8A50 @@ -18204,6 +18485,7 @@ MOD04_021E8A50: ; 0x021E8A50 mov r0, r4 bl MOD04_021E59D4 ldmia sp!, {r4, pc} + arm_func_end MOD04_021E8A50 arm_func_start MOD04_021E8A74 MOD04_021E8A74: ; 0x021E8A74 @@ -18318,6 +18600,7 @@ _021E8BF4: .align 2, 0 _021E8C00: .word 0xFFFEC780 _021E8C04: .word 0xFFFEC5D2 + arm_func_end MOD04_021E8A74 arm_func_start MOD04_021E8C08 MOD04_021E8C08: ; 0x021E8C08 @@ -18442,6 +18725,7 @@ _021E8DA4: mov r0, #4 bl MOD04_021E51C0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021E8C08 arm_func_start MOD04_021E8DC0 MOD04_021E8DC0: ; 0x021E8DC0 @@ -18463,6 +18747,7 @@ MOD04_021E8DC0: ; 0x021E8DC0 bl MOD04_02202308 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E8DC0 arm_func_start MOD04_021E8E08 MOD04_021E8E08: ; 0x021E8E08 @@ -18516,6 +18801,7 @@ MOD04_021E8E08: ; 0x021E8E08 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021E8EC8: .word UNK04_0220D3F0 + arm_func_end MOD04_021E8E08 arm_func_start MOD04_021E8ECC MOD04_021E8ECC: ; 0x021E8ECC @@ -18529,6 +18815,7 @@ MOD04_021E8ECC: ; 0x021E8ECC strb r1, [r0, #0x3cd] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021E8ECC arm_func_start MOD04_021E8EF4 MOD04_021E8EF4: ; 0x021E8EF4 @@ -18569,6 +18856,7 @@ _021E8F58: bl MOD04_021E6730 add sp, sp, #0x21c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_021E8EF4 arm_func_start MOD04_021E8F80 MOD04_021E8F80: ; 0x021E8F80 @@ -18741,6 +19029,7 @@ _021E91E8: _021E91F8: .word UNK04_0220D394 _021E91FC: .word 0x00001388 _021E9200: .word 0xFFFEABC4 + arm_func_end MOD04_021E8F80 arm_func_start MOD04_021E9204 MOD04_021E9204: ; 0x021E9204 @@ -18905,6 +19194,7 @@ _021E9454: .word 0xFFFEABC4 _021E9458: .word UNK04_0220D4A4 _021E945C: .word 0xFFFEC5E6 _021E9460: .word 0x0000FFFF + arm_func_end MOD04_021E9204 arm_func_start MOD04_021E9464 MOD04_021E9464: ; 0x021E9464 @@ -18981,6 +19271,7 @@ _021E9558: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E9564: .word UNK04_0220F018 + arm_func_end MOD04_021E9464 arm_func_start MOD04_021E9568 MOD04_021E9568: ; 0x021E9568 @@ -19633,6 +19924,7 @@ _021E9F0C: .word 0x00004A38 _021E9F10: .word 0x00007530 _021E9F14: .word 0xFF403B3A _021E9F18: .word 0x00002710 + arm_func_end MOD04_021E9568 arm_func_start MOD04_021E9F1C MOD04_021E9F1C: ; 0x021E9F1C @@ -19685,6 +19977,7 @@ _021E9FB0: ldr r0, [r0, #0x10] bl MOD04_02202308 ldmia sp!, {r4, pc} + arm_func_end MOD04_021E9F1C arm_func_start MOD04_021E9FD0 MOD04_021E9FD0: ; 0x021E9FD0 @@ -19782,6 +20075,7 @@ _021EA110: .align 2, 0 _021EA130: .word MOD04_021E32E4 _021EA134: .word UNK04_0220D3F0 + arm_func_end MOD04_021E9FD0 arm_func_start MOD04_021EA138 MOD04_021EA138: ; 0x021EA138 @@ -19828,6 +20122,7 @@ MOD04_021EA138: ; 0x021EA138 ldmia sp!, {r4, pc} .align 2, 0 _021EA1DC: .word UNK04_022106DC + arm_func_end MOD04_021EA138 arm_func_start MOD04_021EA1E0 MOD04_021EA1E0: ; 0x021EA1E0 @@ -19934,6 +20229,7 @@ _021EA358: .word MOD04_021E2D54 _021EA35C: .word MOD04_021E2D2C _021EA360: .word MOD04_021E2C78 _021EA364: .word MOD04_021E2B64 + arm_func_end MOD04_021EA1E0 arm_func_start MOD04_021EA368 MOD04_021EA368: ; 0x021EA368 @@ -20029,6 +20325,7 @@ MOD04_021EA368: ; 0x021EA368 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EA4D0: .word UNK04_022106DC + arm_func_end MOD04_021EA368 arm_func_start MOD04_021EA4D4 MOD04_021EA4D4: ; 0x021EA4D4 @@ -20057,6 +20354,7 @@ _021EA524: mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EA4D4 arm_func_start MOD04_021EA530 MOD04_021EA530: ; 0x021EA530 @@ -20071,6 +20369,7 @@ MOD04_021EA530: ; 0x021EA530 mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EA530 arm_func_start MOD04_021EA55C MOD04_021EA55C: ; 0x021EA55C @@ -20086,6 +20385,7 @@ MOD04_021EA55C: ; 0x021EA55C ldmfd sp!, {pc} .align 2, 0 _021EA584: .word 0xFFFFFDF9 + arm_func_end MOD04_021EA55C arm_func_start MOD04_021EA588 MOD04_021EA588: ; 0x021EA588 @@ -20110,6 +20410,7 @@ _021EA5C4: bl MOD04_021E8C08 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EA588 arm_func_start MOD04_021EA5D8 MOD04_021EA5D8: ; 0x021EA5D8 @@ -20181,6 +20482,7 @@ _021EA694: .align 2, 0 _021EA6D0: .word UNK04_02210E3C _021EA6D4: .word 0xFFFE82AC + arm_func_end MOD04_021EA5D8 arm_func_start MOD04_021EA6D8 MOD04_021EA6D8: ; 0x021EA6D8 @@ -20240,6 +20542,7 @@ _021EA790: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021EA79C: .word UNK04_02210E3C + arm_func_end MOD04_021EA6D8 arm_func_start MOD04_021EA7A0 MOD04_021EA7A0: ; 0x021EA7A0 @@ -20291,6 +20594,7 @@ _021EA818: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021EA854: .word UNK04_02210E3C + arm_func_end MOD04_021EA7A0 arm_func_start MOD04_021EA858 MOD04_021EA858: ; 0x021EA858 @@ -20363,6 +20667,7 @@ _021EA934: .align 2, 0 _021EA944: .word UNK04_02210E3C _021EA948: .word 0xFFFE82B6 + arm_func_end MOD04_021EA858 arm_func_start MOD04_021EA94C MOD04_021EA94C: ; 0x021EA94C @@ -20376,6 +20681,7 @@ MOD04_021EA94C: ; 0x021EA94C mov r3, r4 bl MOD04_021FD498 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EA94C arm_func_start MOD04_021EA974 MOD04_021EA974: ; 0x021EA974 @@ -20387,6 +20693,7 @@ MOD04_021EA974: ; 0x021EA974 bx lr .align 2, 0 _021EA98C: .word UNK04_02210E3C + arm_func_end MOD04_021EA974 arm_func_start MOD04_021EA990 MOD04_021EA990: ; 0x021EA990 @@ -20398,6 +20705,7 @@ MOD04_021EA990: ; 0x021EA990 bx lr .align 2, 0 _021EA9A8: .word UNK04_02210E3C + arm_func_end MOD04_021EA990 arm_func_start MOD04_021EA9AC MOD04_021EA9AC: ; 0x021EA9AC @@ -20408,6 +20716,7 @@ MOD04_021EA9AC: ; 0x021EA9AC bx lr .align 2, 0 _021EA9C0: .word UNK04_02210E3C + arm_func_end MOD04_021EA9AC arm_func_start MOD04_021EA9C4 MOD04_021EA9C4: ; 0x021EA9C4 @@ -20417,6 +20726,7 @@ MOD04_021EA9C4: ; 0x021EA9C4 bx lr .align 2, 0 _021EA9D4: .word UNK04_02210E3C + arm_func_end MOD04_021EA9C4 arm_func_start MOD04_021EA9D8 MOD04_021EA9D8: ; 0x021EA9D8 @@ -20456,6 +20766,7 @@ MOD04_021EA9D8: ; 0x021EA9D8 bx lr .align 2, 0 _021EAA60: .word UNK04_02210E3C + arm_func_end MOD04_021EA9D8 arm_func_start MOD04_021EAA64 MOD04_021EAA64: ; 0x021EAA64 @@ -20573,6 +20884,7 @@ _021EAC00: .align 2, 0 _021EAC14: .word UNK04_02210E3C _021EAC18: .word 0x000082EA + arm_func_end MOD04_021EAA64 arm_func_start MOD04_021EAC1C MOD04_021EAC1C: ; 0x021EAC1C @@ -20593,6 +20905,7 @@ MOD04_021EAC1C: ; 0x021EAC1C ldmia sp!, {r4, pc} .align 2, 0 _021EAC58: .word UNK04_02210E3C + arm_func_end MOD04_021EAC1C arm_func_start MOD04_021EAC5C MOD04_021EAC5C: ; 0x021EAC5C @@ -20620,6 +20933,7 @@ _021EACA4: ldmfd sp!, {pc} .align 2, 0 _021EACB0: .word UNK04_02210E3C + arm_func_end MOD04_021EAC5C arm_func_start MOD04_021EACB4 MOD04_021EACB4: ; 0x021EACB4 @@ -20641,6 +20955,7 @@ MOD04_021EACB4: ; 0x021EACB4 _021EACEC: .word UNK04_02210E3C _021EACF0: .word 0x00000614 _021EACF4: .word 0x000005B9 + arm_func_end MOD04_021EACB4 arm_func_start MOD04_021EACF8 MOD04_021EACF8: ; 0x021EACF8 @@ -20664,6 +20979,7 @@ MOD04_021EACF8: ; 0x021EACF8 ldmia sp!, {r4, pc} .align 2, 0 _021EAD40: .word UNK04_02210E3C + arm_func_end MOD04_021EACF8 arm_func_start MOD04_021EAD44 MOD04_021EAD44: ; 0x021EAD44 @@ -20679,6 +20995,7 @@ _021EAD5C: _021EAD64: mov r0, #8 bx lr + arm_func_end MOD04_021EAD44 arm_func_start MOD04_021EAD6C MOD04_021EAD6C: ; 0x021EAD6C @@ -20698,6 +21015,7 @@ MOD04_021EAD6C: ; 0x021EAD6C ldmfd sp!, {pc} .align 2, 0 _021EADA4: .word UNK04_0220D4BC + arm_func_end MOD04_021EAD6C arm_func_start MOD04_021EADA8 MOD04_021EADA8: ; 0x021EADA8 @@ -20714,6 +21032,7 @@ MOD04_021EADA8: ; 0x021EADA8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EADD4: .word UNK04_0220D4BC + arm_func_end MOD04_021EADA8 arm_func_start MOD04_021EADD8 MOD04_021EADD8: ; 0x021EADD8 @@ -20726,6 +21045,7 @@ MOD04_021EADD8: ; 0x021EADD8 bx lr .align 2, 0 _021EADF4: .word UNK04_02210E3C + arm_func_end MOD04_021EADD8 arm_func_start MOD04_021EADF8 MOD04_021EADF8: ; 0x021EADF8 @@ -20738,6 +21058,7 @@ MOD04_021EADF8: ; 0x021EADF8 bx lr .align 2, 0 _021EAE14: .word UNK04_02210E3C + arm_func_end MOD04_021EADF8 arm_func_start MOD04_021EAE18 MOD04_021EAE18: ; 0x021EAE18 @@ -20750,6 +21071,7 @@ MOD04_021EAE18: ; 0x021EAE18 bx lr .align 2, 0 _021EAE34: .word UNK04_02210E3C + arm_func_end MOD04_021EAE18 arm_func_start MOD04_021EAE38 MOD04_021EAE38: ; 0x021EAE38 @@ -20775,6 +21097,7 @@ MOD04_021EAE38: ; 0x021EAE38 str r1, [r4, #0x18] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021EAE38 arm_func_start MOD04_021EAE90 MOD04_021EAE90: ; 0x021EAE90 @@ -20816,6 +21139,7 @@ _021EAF14: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EAF1C: .word UNK04_02210E3C + arm_func_end MOD04_021EAE90 arm_func_start MOD04_021EAF20 MOD04_021EAF20: ; 0x021EAF20 @@ -20894,6 +21218,7 @@ _021EB034: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _021EB040: .word UNK04_02210E3C + arm_func_end MOD04_021EAF20 arm_func_start MOD04_021EB044 MOD04_021EB044: ; 0x021EB044 @@ -20907,6 +21232,7 @@ MOD04_021EB044: ; 0x021EB044 bl MOD04_021EAF20 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EB044 arm_func_start MOD04_021EB06C MOD04_021EB06C: ; 0x021EB06C @@ -20949,6 +21275,7 @@ _021EB0BC: movlt r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EB06C arm_func_start MOD04_021EB0FC MOD04_021EB0FC: ; 0x021EB0FC @@ -20957,6 +21284,7 @@ MOD04_021EB0FC: ; 0x021EB0FC bx ip .align 2, 0 _021EB108: .word MOD04_021EB06C + arm_func_end MOD04_021EB0FC arm_func_start MOD04_021EB10C MOD04_021EB10C: ; 0x021EB10C @@ -20992,6 +21320,7 @@ _021EB164: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021EB178: .word UNK04_02210E40 + arm_func_end MOD04_021EB10C arm_func_start MOD04_021EB17C MOD04_021EB17C: ; 0x021EB17C @@ -21032,6 +21361,7 @@ _021EB1EC: ldmia sp!, {r4, pc} .align 2, 0 _021EB1FC: .word UNK04_02210E40 + arm_func_end MOD04_021EB17C arm_func_start MOD04_021EB200 MOD04_021EB200: ; 0x021EB200 @@ -21059,6 +21389,7 @@ MOD04_021EB200: ; 0x021EB200 ldmia sp!, {r4, pc} .align 2, 0 _021EB258: .word UNK04_02210E40 + arm_func_end MOD04_021EB200 arm_func_start MOD04_021EB25C MOD04_021EB25C: ; 0x021EB25C @@ -21169,6 +21500,7 @@ _021EB3A8: .word 0xFFFFFCAE _021EB3AC: .word 0xFFFFFC9A _021EB3B0: .word 0xFFFFFC86 _021EB3B4: .word 0xFFFFFC72 + arm_func_end MOD04_021EB25C arm_func_start MOD04_021EB3B8 MOD04_021EB3B8: ; 0x021EB3B8 @@ -21225,6 +21557,7 @@ _021EB46C: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021EB47C: .word MOD04_021EB480 + arm_func_end MOD04_021EB3B8 arm_func_start MOD04_021EB480 MOD04_021EB480: ; 0x021EB480 @@ -21273,6 +21606,7 @@ _021EB508: moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021EB480 arm_func_start MOD04_021EB524 MOD04_021EB524: ; 0x021EB524 @@ -21287,6 +21621,7 @@ MOD04_021EB524: ; 0x021EB524 mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EB524 arm_func_start MOD04_021EB550 MOD04_021EB550: @@ -21311,6 +21646,7 @@ _021EB58C: ldmfd sp!, {pc} .align 2, 0 _021EB598: .word UNK04_02210E44 + arm_func_end MOD04_021EB550 arm_func_start MOD04_021EB59C MOD04_021EB59C: ; 0x021EB59C @@ -21326,6 +21662,7 @@ MOD04_021EB59C: ; 0x021EB59C ldmfd sp!, {pc} .align 2, 0 _021EB5C4: .word UNK04_02210E44 + arm_func_end MOD04_021EB59C arm_func_start MOD04_021EB5C8 MOD04_021EB5C8: ; 0x021EB5C8 @@ -21373,6 +21710,7 @@ _021EB658: .align 2, 0 _021EB660: .word UNK04_02210E48 _021EB664: .word 0x00000474 + arm_func_end MOD04_021EB5C8 arm_func_start MOD04_021EB668 MOD04_021EB668: ; 0x021EB668 @@ -21394,6 +21732,7 @@ MOD04_021EB668: ; 0x021EB668 _021EB6A0: .word UNK04_02210E54 _021EB6A4: .word UNK04_02210E48 _021EB6A8: .word 0x00000D18 + arm_func_end MOD04_021EB668 arm_func_start MOD04_021EB6AC MOD04_021EB6AC: ; 0x021EB6AC @@ -21401,6 +21740,7 @@ MOD04_021EB6AC: ; 0x021EB6AC subhi r0, r0, #3 andhi r0, r0, #0xff bx lr + arm_func_end MOD04_021EB6AC arm_func_start MOD04_021EB6BC MOD04_021EB6BC: ; 0x021EB6BC @@ -21414,6 +21754,7 @@ MOD04_021EB6BC: ; 0x021EB6BC ldmfd sp!, {pc} .align 2, 0 _021EB6DC: .word UNK04_02210E58 + arm_func_end MOD04_021EB6BC arm_func_start MOD04_021EB6E0 MOD04_021EB6E0: ; 0x021EB6E0 @@ -21423,6 +21764,7 @@ MOD04_021EB6E0: ; 0x021EB6E0 bx lr .align 2, 0 _021EB6F0: .word UNK04_02210E58 + arm_func_end MOD04_021EB6E0 arm_func_start MOD04_021EB6F4 MOD04_021EB6F4: ; 0x021EB6F4 @@ -21437,6 +21779,7 @@ MOD04_021EB6F4: ; 0x021EB6F4 strb r0, [r4, #0xa] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EB6F4 arm_func_start MOD04_021EB720 MOD04_021EB720: ; 0x021EB720 @@ -21446,6 +21789,7 @@ MOD04_021EB720: ; 0x021EB720 bx lr .align 2, 0 _021EB730: .word UNK04_02210E58 + arm_func_end MOD04_021EB720 arm_func_start MOD04_021EB734 MOD04_021EB734: ; 0x021EB734 @@ -21474,6 +21818,7 @@ MOD04_021EB734: ; 0x021EB734 ldrb r0, [r0, #0x444] strb r0, [r5, #0x14] ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EB734 arm_func_start MOD04_021EB798 MOD04_021EB798: ; 0x021EB798 @@ -21504,6 +21849,7 @@ _021EB7F0: .word UNK04_02210E4C _021EB7F4: .word UNK04_02210E50 _021EB7F8: .word UNK04_02210E54 _021EB7FC: .word UNK04_02210E48 + arm_func_end MOD04_021EB798 arm_func_start MOD04_021EB800 MOD04_021EB800: ; 0x021EB800 @@ -21580,6 +21926,7 @@ _021EB8E0: ldmia sp!, {r4, pc} .align 2, 0 _021EB90C: .word 0x00000D18 + arm_func_end MOD04_021EB800 arm_func_start MOD04_021EB910 MOD04_021EB910: ; 0x021EB910 @@ -21601,6 +21948,7 @@ MOD04_021EB910: ; 0x021EB910 mov r2, r4 blx r3 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EB910 arm_func_start MOD04_021EB958 MOD04_021EB958: ; 0x021EB958 @@ -21623,6 +21971,7 @@ MOD04_021EB958: ; 0x021EB958 blx r2 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EB958 arm_func_start MOD04_021EB9A4 MOD04_021EB9A4: ; 0x021EB9A4 @@ -21639,6 +21988,7 @@ MOD04_021EB9A4: ; 0x021EB9A4 bl MIi_CpuCopy32 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EB9A4 arm_func_start MOD04_021EB9D8 MOD04_021EB9D8: ; 0x021EB9D8 @@ -21664,6 +22014,7 @@ _021EBA0C: mov r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EB9D8 arm_func_start MOD04_021EBA28 MOD04_021EBA28: ; 0x021EBA28 @@ -21705,6 +22056,7 @@ _021EBAA8: _021EBAB0: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EBA28 arm_func_start MOD04_021EBAB8 MOD04_021EBAB8: ; 0x021EBAB8 @@ -21722,6 +22074,7 @@ _021EBADC: ldmia sp!, {r4, pc} .align 2, 0 _021EBAE4: .word UNK04_02210E58 + arm_func_end MOD04_021EBAB8 arm_func_start MOD04_021EBAE8 MOD04_021EBAE8: ; 0x021EBAE8 @@ -21763,6 +22116,7 @@ MOD04_021EBAE8: ; 0x021EBAE8 bl MOD04_021ECD54 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EBAE8 arm_func_start MOD04_021EBB80 MOD04_021EBB80: ; 0x021EBB80 @@ -21829,6 +22183,7 @@ _021EBC40: mvn r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EBB80 arm_func_start MOD04_021EBC60 MOD04_021EBC60: ; 0x021EBC60 @@ -21947,6 +22302,7 @@ _021EBE10: .word UNK04_02210E48 _021EBE14: .word UNK04_02210E4C _021EBE18: .word UNK04_02210E50 _021EBE1C: .word UNK04_02210E54 + arm_func_end MOD04_021EBC60 arm_func_start MOD04_021EBE20 MOD04_021EBE20: ; 0x021EBE20 @@ -22017,6 +22373,7 @@ _021EBEF0: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021EBF1C: .word 0x00000444 + arm_func_end MOD04_021EBE20 arm_func_start MOD04_021EBF20 MOD04_021EBF20: ; 0x021EBF20 @@ -22054,6 +22411,7 @@ _021EBF84: ldmia sp!, {r4, r5, pc} .align 2, 0 _021EBF9C: .word 0x00000444 + arm_func_end MOD04_021EBF20 arm_func_start MOD04_021EBFA0 MOD04_021EBFA0: ; 0x021EBFA0 @@ -22084,6 +22442,7 @@ MOD04_021EBFA0: ; 0x021EBFA0 ldmfd sp!, {pc} .align 2, 0 _021EC004: .word 0x0000046C + arm_func_end MOD04_021EBFA0 arm_func_start MOD04_021EC008 MOD04_021EC008: ; 0x021EC008 @@ -22149,6 +22508,7 @@ _021EC0DC: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021EC0E4: .word 0x00000474 + arm_func_end MOD04_021EC008 arm_func_start MOD04_021EC0E8 MOD04_021EC0E8: ; 0x021EC0E8 @@ -22195,6 +22555,7 @@ _021EC174: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _021EC17C: .word 0x0000047C + arm_func_end MOD04_021EC0E8 arm_func_start MOD04_021EC180 MOD04_021EC180: ; 0x021EC180 @@ -22238,6 +22599,7 @@ _021EC204: mvn r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_021EC180 arm_func_start MOD04_021EC210 MOD04_021EC210: ; 0x021EC210 @@ -22290,6 +22652,7 @@ _021EC2B8: mvn r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EC210 arm_func_start MOD04_021EC2C4 MOD04_021EC2C4: ; 0x021EC2C4 @@ -22400,6 +22763,7 @@ _021EC418: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021EC448: .word 0x00000447 + arm_func_end MOD04_021EC2C4 arm_func_start MOD04_021EC44C MOD04_021EC44C: ; 0x021EC44C @@ -22443,6 +22807,7 @@ _021EC4C4: ldr r0, [r4, #4] bl MOD04_021EC2C4 ldmia sp!, {r4, pc} + arm_func_end MOD04_021EC44C arm_func_start MOD04_021EC4D8 MOD04_021EC4D8: ; 0x021EC4D8 @@ -22519,6 +22884,7 @@ _021EC5B8: ldmia sp!, {r4, pc} .align 2, 0 _021EC5CC: .word 0x0000047C + arm_func_end MOD04_021EC4D8 arm_func_start MOD04_021EC5D0 MOD04_021EC5D0: ; 0x021EC5D0 @@ -22529,6 +22895,7 @@ MOD04_021EC5D0: ; 0x021EC5D0 moveq r0, #0xc0000 movne r0, #0x80000 bx lr + arm_func_end MOD04_021EC5D0 arm_func_start MOD04_021EC5EC MOD04_021EC5EC: ; 0x021EC5EC @@ -22539,6 +22906,7 @@ MOD04_021EC5EC: ; 0x021EC5EC moveq r0, #0x30000 movne r0, #0x20000 bx lr + arm_func_end MOD04_021EC5EC arm_func_start MOD04_021EC608 MOD04_021EC608: ; 0x021EC608 @@ -22659,6 +23027,7 @@ _021EC79C: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021EC7AC: .word 0x00000D0C + arm_func_end MOD04_021EC608 arm_func_start MOD04_021EC7B0 MOD04_021EC7B0: ; 0x021EC7B0 @@ -22748,6 +23117,7 @@ _021EC8E0: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EC8E8: .word 0x00000CB8 + arm_func_end MOD04_021EC7B0 arm_func_start MOD04_021EC8EC MOD04_021EC8EC: ; 0x021EC8EC @@ -22826,6 +23196,7 @@ _021EC9EC: ldmia sp!, {r4, r5, pc} .align 2, 0 _021ECA04: .word 0x00000CB8 + arm_func_end MOD04_021EC8EC arm_func_start MOD04_021ECA08 MOD04_021ECA08: ; 0x021ECA08 @@ -22849,6 +23220,7 @@ _021ECA3C: _021ECA44: mov r0, r4 ldmia sp!, {r4, pc} + arm_func_end MOD04_021ECA08 arm_func_start MOD04_021ECA4C MOD04_021ECA4C: ; 0x021ECA4C @@ -22873,6 +23245,7 @@ _021ECA8C: mov r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021ECA4C arm_func_start MOD04_021ECA98 MOD04_021ECA98: ; 0x021ECA98 @@ -22925,6 +23298,7 @@ _021ECB2C: mov r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021ECA98 arm_func_start MOD04_021ECB38 MOD04_021ECB38: ; 0x021ECB38 @@ -22964,6 +23338,7 @@ _021ECB9C: _021ECBB4: mov r0, #0 ldmia sp!, {r4, pc} + arm_func_end MOD04_021ECB38 arm_func_start MOD04_021ECBBC MOD04_021ECBBC: ; 0x021ECBBC @@ -23046,6 +23421,7 @@ _021ECCDC: .word 0xFFFF33B4 _021ECCE0: .word 0xFFFF30F8 _021ECCE4: .word 0xFFFF3094 _021ECCE8: .word 0xFFFF3030 + arm_func_end MOD04_021ECBBC arm_func_start MOD04_021ECCEC MOD04_021ECCEC: ; 0x021ECCEC @@ -23057,11 +23433,13 @@ MOD04_021ECCEC: ; 0x021ECCEC .align 2, 0 _021ECD00: .word 0xFFFF3C4D _021ECD04: .word 0xFFFF3865 + arm_func_end MOD04_021ECCEC arm_func_start MOD04_021ECD08 MOD04_021ECD08: ; 0x021ECD08 mvn r0, #5 bx lr + arm_func_end MOD04_021ECD08 arm_func_start MOD04_021ECD10 MOD04_021ECD10: ; 0x021ECD10 @@ -23088,6 +23466,7 @@ _021ECD44: _021ECD4C: mov r0, #0 bx lr + arm_func_end MOD04_021ECD10 arm_func_start MOD04_021ECD54 MOD04_021ECD54: ; 0x021ECD54 @@ -23115,6 +23494,7 @@ _021ECD9C: mov r0, r4 bl MOD04_021ECBBC ldmia sp!, {r4, pc} + arm_func_end MOD04_021ECD54 arm_func_start MOD04_021ECDA8 MOD04_021ECDA8: ; 0x021ECDA8 @@ -23129,6 +23509,7 @@ MOD04_021ECDA8: ; 0x021ECDA8 movne r0, #0x11 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021ECDA8 arm_func_start MOD04_021ECDD4 MOD04_021ECDD4: ; 0x021ECDD4 @@ -23151,6 +23532,7 @@ _021ECDE8: _021ECE10: mov r0, r3 bx lr + arm_func_end MOD04_021ECDD4 arm_func_start MOD04_021ECE18 MOD04_021ECE18: ; 0x021ECE18 @@ -23197,6 +23579,7 @@ _021ECEA0: ldmia sp!, {r4, r5, pc} .align 2, 0 _021ECEAC: .word 0x00000447 + arm_func_end MOD04_021ECE18 arm_func_start MOD04_021ECEB0 MOD04_021ECEB0: ; 0x021ECEB0 @@ -23277,6 +23660,7 @@ _021ECFB0: blt _021ECED8 mov r0, r5 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end MOD04_021ECEB0 arm_func_start MOD04_021ECFC8 MOD04_021ECFC8: ; 0x021ECFC8 @@ -23349,6 +23733,7 @@ _021ED0AC: _021ED0B4: .word UNK04_0220D4C0 _021ED0B8: .word UNK04_0220BADC _021ED0BC: .word UNK04_0220BAEC + arm_func_end MOD04_021ECFC8 arm_func_start MOD04_021ED0C0 MOD04_021ED0C0: ; 0x021ED0C0 @@ -23382,6 +23767,7 @@ _021ED11C: ldmia sp!, {r4, r5, pc} .align 2, 0 _021ED128: .word UNK04_0220BAE4 + arm_func_end MOD04_021ED0C0 arm_func_start MOD04_021ED12C MOD04_021ED12C: ; 0x021ED12C @@ -23408,6 +23794,7 @@ _021ED170: ldmia sp!, {r4, pc} .align 2, 0 _021ED178: .word UNK04_0220BAE4 + arm_func_end MOD04_021ED12C arm_func_start MOD04_021ED17C MOD04_021ED17C: ; 0x021ED17C @@ -23454,6 +23841,7 @@ _021ED20C: ldrb r0, [r4, #0xd10] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021ED17C arm_func_start MOD04_021ED218 MOD04_021ED218: ; 0x021ED218 @@ -23522,6 +23910,7 @@ _021ED2F0: mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021ED218 arm_func_start MOD04_021ED2FC MOD04_021ED2FC: ; 0x021ED2FC @@ -23537,6 +23926,7 @@ MOD04_021ED2FC: ; 0x021ED2FC ldmfd sp!, {pc} .align 2, 0 _021ED324: .word UNK04_0220BAF8 + arm_func_end MOD04_021ED2FC arm_func_start MOD04_021ED328 MOD04_021ED328: ; 0x021ED328 @@ -23565,6 +23955,7 @@ _021ED364: mov r0, r4 bl MOD04_021ED798 ldmia sp!, {r4, pc} + arm_func_end MOD04_021ED328 arm_func_start MOD04_021ED388 MOD04_021ED388: ; 0x021ED388 @@ -23630,6 +24021,7 @@ _021ED448: mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021ED388 arm_func_start MOD04_021ED468 MOD04_021ED468: ; 0x021ED468 @@ -23691,6 +24083,7 @@ _021ED524: mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021ED468 arm_func_start MOD04_021ED538 MOD04_021ED538: ; 0x021ED538 @@ -23771,6 +24164,7 @@ _021ED648: .align 2, 0 _021ED650: .word 0x000082EA _021ED654: .word 0x020FF590 + arm_func_end MOD04_021ED538 arm_func_start MOD04_021ED658 MOD04_021ED658: ; 0x021ED658 @@ -23860,6 +24254,7 @@ _021ED788: .word 0x00000447 _021ED78C: .word 0x00000D0F _021ED790: .word 0x00000474 _021ED794: .word 0x0000047C + arm_func_end MOD04_021ED658 arm_func_start MOD04_021ED798 MOD04_021ED798: ; 0x021ED798 @@ -23881,6 +24276,7 @@ MOD04_021ED798: ; 0x021ED798 strb r0, [r4, #0xd11] mov r0, #3 ldmia sp!, {r4, pc} + arm_func_end MOD04_021ED798 arm_func_start MOD04_021ED7E0 MOD04_021ED7E0: ; 0x021ED7E0 @@ -23928,6 +24324,7 @@ _021ED870: _021ED878: .word 0x000082EA _021ED87C: .word 0x020FF590 _021ED880: .word 0x020FF598 + arm_func_end MOD04_021ED7E0 arm_func_start MOD04_021ED884 MOD04_021ED884: ; 0x021ED884 @@ -23952,6 +24349,7 @@ MOD04_021ED884: ; 0x021ED884 .align 2, 0 _021ED8CC: .word 0x020FF590 _021ED8D0: .word 0x020FF598 + arm_func_end MOD04_021ED884 arm_func_start MOD04_021ED8D4 MOD04_021ED8D4: ; 0x021ED8D4 @@ -24022,6 +24420,7 @@ _021ED9C0: .word 0x020FF590 _021ED9C4: .word 0x020FF598 _021ED9C8: .word 0x00000474 _021ED9CC: .word 0x0000047C + arm_func_end MOD04_021ED8D4 arm_func_start MOD04_021ED9D0 MOD04_021ED9D0: ; 0x021ED9D0 @@ -24054,6 +24453,7 @@ _021EDA24: blo _021EDA00 mvn r0, #0 ldmia sp!, {r4, pc} + arm_func_end MOD04_021ED9D0 arm_func_start MOD04_021EDA3C MOD04_021EDA3C: ; 0x021EDA3C @@ -24070,6 +24470,7 @@ MOD04_021EDA3C: ; 0x021EDA3C orr r1, r3, r2, lsl r1 strh r1, [r0, #0x16] ldmia sp!, {r4, pc} + arm_func_end MOD04_021EDA3C arm_func_start MOD04_021EDA70 MOD04_021EDA70: ; 0x021EDA70 @@ -24132,6 +24533,7 @@ _021EDB38: mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EDA70 arm_func_start MOD04_021EDB44 MOD04_021EDB44: ; 0x021EDB44 @@ -24173,6 +24575,7 @@ _021EDBBC: ldmia sp!, {r4, pc} .align 2, 0 _021EDBC8: .word MOD04_021EC44C + arm_func_end MOD04_021EDB44 arm_func_start MOD04_021EDBCC MOD04_021EDBCC: ; 0x021EDBCC @@ -24210,6 +24613,7 @@ MOD04_021EDBCC: ; 0x021EDBCC bl SOC_GetResolver add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021EDBCC arm_func_start MOD04_021EDC54 MOD04_021EDC54: ; 0x021EDC54 @@ -24236,6 +24640,7 @@ _021EDC78: orr r0, r2, r0 orr r0, r1, r0 bx lr + arm_func_end MOD04_021EDC54 arm_func_start MOD04_021EDCA8 MOD04_021EDCA8: ; 0x021EDCA8 @@ -24260,6 +24665,7 @@ MOD04_021EDCA8: ; 0x021EDCA8 orr r0, r2, r0 orr r0, r1, r0 bx lr + arm_func_end MOD04_021EDCA8 arm_func_start MOD04_021EDCFC MOD04_021EDCFC: ; 0x021EDCFC @@ -24313,6 +24719,7 @@ _021EDD94: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EDDB8: .word UNK04_0220BB2C + arm_func_end MOD04_021EDCFC arm_func_start MOD04_021EDDBC MOD04_021EDDBC: ; 0x021EDDBC @@ -24337,6 +24744,7 @@ _021EDDFC: mov r0, #0xb add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EDDBC arm_func_start MOD04_021EDE08 MOD04_021EDE08: ; 0x021EDE08 @@ -24347,6 +24755,7 @@ MOD04_021EDE08: ; 0x021EDE08 mov r0, #0x10 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EDE08 arm_func_start MOD04_021EDE24 MOD04_021EDE24: ; 0x021EDE24 @@ -24379,6 +24788,7 @@ _021EDE60: _021EDE88: mov r0, #0xe ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EDE24 arm_func_start MOD04_021EDE90 MOD04_021EDE90: ; 0x021EDE90 @@ -24396,6 +24806,7 @@ MOD04_021EDE90: ; 0x021EDE90 mov r0, #0x11 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EDE90 arm_func_start MOD04_021EDEC8 MOD04_021EDEC8: ; 0x021EDEC8 @@ -24437,6 +24848,7 @@ _021EDF00: ldmia sp!, {r4, pc} .align 2, 0 _021EDF54: .word 0x01FF6210 + arm_func_end MOD04_021EDEC8 arm_func_start MOD04_021EDF58 MOD04_021EDF58: ; 0x021EDF58 @@ -24466,6 +24878,7 @@ MOD04_021EDF58: ; 0x021EDF58 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EDFB8: .word 0x021C8CC4 + arm_func_end MOD04_021EDF58 arm_func_start MOD04_021EDFBC MOD04_021EDFBC: ; 0x021EDFBC @@ -24546,6 +24959,7 @@ _021EE0B4: mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EDFBC arm_func_start MOD04_021EE0C0 MOD04_021EE0C0: ; 0x021EE0C0 @@ -24651,6 +25065,7 @@ _021EE228: ldr r0, [sp, #4] add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_021EE0C0 arm_func_start MOD04_021EE234 MOD04_021EE234: ; 0x021EE234 @@ -24685,6 +25100,7 @@ _021EE278: moveq r0, #0 rsb r0, r0, #0 bx lr + arm_func_end MOD04_021EE234 arm_func_start MOD04_021EE2A4 MOD04_021EE2A4: ; 0x021EE2A4 @@ -24810,6 +25226,7 @@ _021EE45C: .word UNK04_0220D4DC _021EE460: .word UNK04_0220BB84 _021EE464: .word UNK04_0220D4E0 _021EE468: .word UNK04_0220BB94 + arm_func_end MOD04_021EE2A4 arm_func_start MOD04_021EE46C MOD04_021EE46C: ; 0x021EE46C @@ -24832,6 +25249,7 @@ MOD04_021EE46C: ; 0x021EE46C bl MI_CpuCopy8 add sp, sp, #0x6c ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EE46C arm_func_start MOD04_021EE4B8 MOD04_021EE4B8: ; 0x021EE4B8 @@ -24906,6 +25324,7 @@ _021EE584: _021EE5AC: .word UNK04_0220BBA4 _021EE5B0: .word UNK04_0220D4E4 _021EE5B4: .word UNK04_0220D4D8 + arm_func_end MOD04_021EE4B8 arm_func_start MOD04_021EE5B8 MOD04_021EE5B8: ; 0x021EE5B8 @@ -24914,6 +25333,7 @@ MOD04_021EE5B8: ; 0x021EE5B8 bx ip .align 2, 0 _021EE5C4: .word MOD04_021EE2A4 + arm_func_end MOD04_021EE5B8 arm_func_start MOD04_021EE5C8 MOD04_021EE5C8: ; 0x021EE5C8 @@ -24929,6 +25349,7 @@ MOD04_021EE5C8: ; 0x021EE5C8 ldmfd sp!, {pc} .align 2, 0 _021EE5F0: .word UNK04_0220D540 + arm_func_end MOD04_021EE5C8 arm_func_start MOD04_021EE5F4 MOD04_021EE5F4: ; 0x021EE5F4 @@ -24952,6 +25373,7 @@ MOD04_021EE5F4: ; 0x021EE5F4 ldmia sp!, {r4, pc} .align 2, 0 _021EE63C: .word UNK04_0220D54C + arm_func_end MOD04_021EE5F4 arm_func_start MOD04_021EE640 MOD04_021EE640: ; 0x021EE640 @@ -24965,6 +25387,7 @@ MOD04_021EE640: ; 0x021EE640 bl MOD04_021EE46C add sp, sp, #0x18 ldmia sp!, {r4, pc} + arm_func_end MOD04_021EE640 arm_func_start MOD04_021EE668 MOD04_021EE668: ; 0x021EE668 @@ -24983,6 +25406,7 @@ MOD04_021EE668: ; 0x021EE668 ldmfd sp!, {pc} .align 2, 0 _021EE69C: .word UNK04_0220D54C + arm_func_end MOD04_021EE668 arm_func_start MOD04_021EE6A0 MOD04_021EE6A0: ; 0x021EE6A0 @@ -25070,6 +25494,7 @@ _021EE7C8: .align 2, 0 _021EE7D4: .word UNK04_02210EE0 _021EE7D8: .word UNK04_02210E5C + arm_func_end MOD04_021EE6A0 arm_func_start MOD04_021EE7DC MOD04_021EE7DC: ; 0x021EE7DC @@ -25121,6 +25546,7 @@ MOD04_021EE7DC: ; 0x021EE7DC _021EE88C: .word UNK04_02210EE8 _021EE890: .word UNK04_02210EE0 _021EE894: .word UNK04_0220D558 + arm_func_end MOD04_021EE7DC arm_func_start MOD04_021EE898 MOD04_021EE898: ; 0x021EE898 @@ -25188,6 +25614,7 @@ _021EE980: .word UNK04_0220D55C _021EE984: .word 0x00006CFC _021EE988: .word UNK04_02210EE4 _021EE98C: .word UNK04_02210EF1 + arm_func_end MOD04_021EE898 arm_func_start MOD04_021EE990 MOD04_021EE990: ; 0x021EE990 @@ -25212,6 +25639,7 @@ MOD04_021EE990: ; 0x021EE990 _021EE9D4: .word UNK04_02210EE4 _021EE9D8: .word UNK04_02210EE0 _021EE9DC: .word UNK04_02210EEC + arm_func_end MOD04_021EE990 arm_func_start MOD04_021EE9E0 MOD04_021EE9E0: ; 0x021EE9E0 @@ -25249,6 +25677,7 @@ _021EEA58: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EE9E0 arm_func_start MOD04_021EEA64 MOD04_021EEA64: ; 0x021EEA64 @@ -25281,6 +25710,7 @@ _021EEAC4: mla r0, r6, sb, sl add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_021EEA64 arm_func_start MOD04_021EEAD0 MOD04_021EEAD0: ; 0x021EEAD0 @@ -25308,6 +25738,7 @@ _021EEAF8: _021EEB20: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end MOD04_021EEAD0 arm_func_start MOD04_021EEB28 MOD04_021EEB28: ; 0x021EEB28 @@ -25326,6 +25757,7 @@ _021EEB44: bpl _021EEB44 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EEB28 arm_func_start MOD04_021EEB60 MOD04_021EEB60: ; 0x021EEB60 @@ -25362,6 +25794,7 @@ _021EEBC0: _021EEBC8: .word UNK04_0220D580 _021EEBCC: .word UNK04_0220D584 _021EEBD0: .word 0x00000121 + arm_func_end MOD04_021EEB60 arm_func_start MOD04_021EEBD4 MOD04_021EEBD4: ; 0x021EEBD4 @@ -25394,6 +25827,7 @@ _021EEC10: .align 2, 0 _021EEC34: .word UNK04_0220D580 _021EEC38: .word UNK04_0220D584 + arm_func_end MOD04_021EEBD4 arm_func_start MOD04_021EEC3C MOD04_021EEC3C: ; 0x021EEC3C @@ -25453,10 +25887,11 @@ _021EECFC: mvn r0, #0 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_021EEC3C arm_func_start MOD04_021EED08 MOD04_021EED08: ; 0x021EED08 - ldr ip, _021EED24 ; =0x020E1888 + ldr ip, _021EED24 ; =qsort mov r2, r0 mov r3, r1 ldr r0, [r2, #0x14] @@ -25464,7 +25899,8 @@ MOD04_021EED08: ; 0x021EED08 ldr r2, [r2, #8] bx ip .align 2, 0 -_021EED24: .word 0x020E1888 +_021EED24: .word qsort + arm_func_end MOD04_021EED08 arm_func_start MOD04_021EED28 MOD04_021EED28: ; 0x021EED28 @@ -25494,6 +25930,7 @@ _021EED5C: .align 2, 0 _021EED7C: .word UNK04_0220D590 _021EED80: .word UNK04_0220D584 + arm_func_end MOD04_021EED28 arm_func_start MOD04_021EED84 MOD04_021EED84: ; 0x021EED84 @@ -25523,6 +25960,7 @@ _021EEDB8: .align 2, 0 _021EEDD8: .word UNK04_0220D590 _021EEDDC: .word UNK04_0220D584 + arm_func_end MOD04_021EED84 arm_func_start MOD04_021EEDE0 MOD04_021EEDE0: ; 0x021EEDE0 @@ -25567,6 +26005,7 @@ _021EEE58: .align 2, 0 _021EEE6C: .word UNK04_0220D590 _021EEE70: .word UNK04_0220D584 + arm_func_end MOD04_021EEDE0 arm_func_start MOD04_021EEE74 MOD04_021EEE74: ; 0x021EEE74 @@ -25603,6 +26042,7 @@ _021EEEA0: .align 2, 0 _021EEEE8: .word UNK04_0220D5B0 _021EEEEC: .word UNK04_0220D584 + arm_func_end MOD04_021EEE74 arm_func_start MOD04_021EEEF0 MOD04_021EEEF0: ; 0x021EEEF0 @@ -25657,6 +26097,7 @@ _021EEF8C: .align 2, 0 _021EEFA0: .word UNK04_0220D5BC _021EEFA4: .word UNK04_0220D584 + arm_func_end MOD04_021EEEF0 arm_func_start MOD04_021EEFA8 MOD04_021EEFA8: ; 0x021EEFA8 @@ -25683,6 +26124,7 @@ _021EEFD0: .align 2, 0 _021EEFF4: .word UNK04_0220D5DC _021EEFF8: .word UNK04_0220D584 + arm_func_end MOD04_021EEFA8 arm_func_start MOD04_021EEFFC MOD04_021EEFFC: ; 0x021EEFFC @@ -25719,11 +26161,13 @@ _021EF050: .align 2, 0 _021EF064: .word UNK04_0220D590 _021EF068: .word UNK04_0220D584 + arm_func_end MOD04_021EEFFC arm_func_start MOD04_021EF06C MOD04_021EF06C: ; 0x021EF06C ldr r0, [r0] bx lr + arm_func_end MOD04_021EF06C arm_func_start MOD04_021EF074 MOD04_021EF074: ; 0x021EF074 @@ -25759,6 +26203,7 @@ _021EF0C4: .align 2, 0 _021EF0DC: .word UNK04_0220D5DC _021EF0E0: .word UNK04_0220D584 + arm_func_end MOD04_021EF074 arm_func_start MOD04_021EF0E4 MOD04_021EF0E4: ; 0x021EF0E4 @@ -25820,6 +26265,7 @@ _021EF1A8: .word UNK04_0220D5DC _021EF1AC: .word UNK04_0220D584 _021EF1B0: .word UNK04_0220D5E4 _021EF1B4: .word UNK04_0220D5F0 + arm_func_end MOD04_021EF0E4 arm_func_start MOD04_021EF1B8 MOD04_021EF1B8: ; 0x021EF1B8 @@ -25834,6 +26280,7 @@ MOD04_021EF1B8: ; 0x021EF1B8 bl memcpy add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EF1B8 arm_func_start MOD04_021EF1E4 MOD04_021EF1E4: ; 0x021EF1E4 @@ -25861,6 +26308,7 @@ MOD04_021EF1E4: ; 0x021EF1E4 .align 2, 0 _021EF238: .word UNK04_0220D5F0 _021EF23C: .word UNK04_0220D584 + arm_func_end MOD04_021EF1E4 arm_func_start MOD04_021EF240 MOD04_021EF240: ; 0x021EF240 @@ -25873,6 +26321,7 @@ MOD04_021EF240: ; 0x021EF240 ldr r1, [r4, #0x10] blx r1 ldmia sp!, {r4, pc} + arm_func_end MOD04_021EF240 arm_func_start MOD04_021EF264 MOD04_021EF264: ; 0x021EF264 @@ -25912,6 +26361,7 @@ _021EF2D0: .align 2, 0 _021EF2DC: .word UNK04_0220D5FC _021EF2E0: .word UNK04_0220D600 + arm_func_end MOD04_021EF264 arm_func_start MOD04_021EF2E4 MOD04_021EF2E4: ; 0x021EF2E4 @@ -25947,6 +26397,7 @@ _021EF324: .align 2, 0 _021EF350: .word UNK04_0220D5FC _021EF354: .word UNK04_0220D600 + arm_func_end MOD04_021EF2E4 arm_func_start MOD04_021EF358 MOD04_021EF358: ; 0x021EF358 @@ -25991,6 +26442,7 @@ _021EF380: .align 2, 0 _021EF3EC: .word UNK04_0220D60C _021EF3F0: .word UNK04_0220D600 + arm_func_end MOD04_021EF358 arm_func_start MOD04_021EF3F4 MOD04_021EF3F4: ; 0x021EF3F4 @@ -26036,6 +26488,7 @@ _021EF41C: .align 2, 0 _021EF48C: .word UNK04_0220D60C _021EF490: .word UNK04_0220D600 + arm_func_end MOD04_021EF3F4 arm_func_start MOD04_021EF494 MOD04_021EF494: ; 0x021EF494 @@ -26085,6 +26538,7 @@ _021EF520: .align 2, 0 _021EF538: .word UNK04_0220D60C _021EF53C: .word UNK04_0220D600 + arm_func_end MOD04_021EF494 arm_func_start MOD04_021EF540 MOD04_021EF540: ; 0x021EF540 @@ -26120,6 +26574,7 @@ _021EF5A0: .align 2, 0 _021EF5A8: .word UNK04_0220D60C _021EF5AC: .word UNK04_0220D600 + arm_func_end MOD04_021EF540 arm_func_start MOD04_021EF5B0 MOD04_021EF5B0: ; 0x021EF5B0 @@ -26158,6 +26613,7 @@ _021EF60C: .align 2, 0 _021EF624: .word UNK04_0220D60C _021EF628: .word UNK04_0220D600 + arm_func_end MOD04_021EF5B0 arm_func_start MOD04_021EF62C MOD04_021EF62C: ; 0x021EF62C @@ -26250,6 +26706,7 @@ _021EF75C: .word UNK04_0220D624 _021EF760: .word UNK04_0220D630 _021EF764: .word UNK04_0220D60C _021EF768: .word UNK04_0220D63C + arm_func_end MOD04_021EF62C arm_func_start MOD04_021EF76C MOD04_021EF76C: ; 0x021EF76C @@ -26263,6 +26720,7 @@ MOD04_021EF76C: ; 0x021EF76C bl MOD04_021EF62C add sp, sp, #0xc ldmfd sp!, {pc} + arm_func_end MOD04_021EF76C arm_func_start MOD04_021EF794 MOD04_021EF794: ; 0x021EF794 @@ -26285,6 +26743,7 @@ MOD04_021EF794: ; 0x021EF794 bl MOD04_021EF7E0 add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EF794 arm_func_start MOD04_021EF7E0 MOD04_021EF7E0: ; 0x021EF7E0 @@ -26306,6 +26765,7 @@ _021EF7F8: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021EF81C: .word UNK04_0220D64C + arm_func_end MOD04_021EF7E0 arm_func_start MOD04_021EF820 MOD04_021EF820: ; 0x021EF820 @@ -26398,6 +26858,7 @@ _021EF94C: .word UNK04_0220BBC0 _021EF950: .word UNK04_0220BBC4 _021EF954: .word 0x55555556 _021EF958: .word 0x00000003 + arm_func_end MOD04_021EF820 arm_func_start MOD04_021EF95C MOD04_021EF95C: ; 0x021EF95C @@ -26445,6 +26906,7 @@ _021EF9AC: strb r0, [r1, #3] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EF95C arm_func_start MOD04_021EF9FC MOD04_021EF9FC: ; 0x021EF9FC @@ -26460,6 +26922,7 @@ MOD04_021EF9FC: ; 0x021EF9FC add r0, r1, r5 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EF9FC arm_func_start MOD04_021EFA2C MOD04_021EFA2C: ; 0x021EFA2C @@ -26471,6 +26934,7 @@ MOD04_021EFA2C: ; 0x021EFA2C bx lr .align 2, 0 _021EFA44: .word UNK04_0220D654 + arm_func_end MOD04_021EFA2C arm_func_start MOD04_021EFA48 MOD04_021EFA48: ; 0x021EFA48 @@ -26485,6 +26949,7 @@ MOD04_021EFA48: ; 0x021EFA48 ldmfd sp!, {pc} .align 2, 0 _021EFA6C: .word UNK04_0220D654 + arm_func_end MOD04_021EFA48 arm_func_start MOD04_021EFA70 MOD04_021EFA70: ; 0x021EFA70 @@ -26511,6 +26976,7 @@ MOD04_021EFA70: ; 0x021EFA70 _021EFABC: .word 0x0000FFFF _021EFAC0: .word 0x000041A7 _021EFAC4: .word 0x00007FFF + arm_func_end MOD04_021EFA70 arm_func_start MOD04_021EFAC8 MOD04_021EFAC8: ; 0x021EFAC8 @@ -26540,6 +27006,7 @@ _021EFB18: .word UNK04_0220D658 _021EFB1C: .word UNK04_0220D678 _021EFB20: .word 0x00000667 _021EFB24: .word 0x01FF6210 + arm_func_end MOD04_021EFAC8 arm_func_start MOD04_021EFB28 MOD04_021EFB28: ; 0x021EFB28 @@ -26548,6 +27015,7 @@ MOD04_021EFB28: ; 0x021EFB28 bx lr .align 2, 0 _021EFB34: .word UNK04_02210F3C + arm_func_end MOD04_021EFB28 arm_func_start MOD04_021EFB38 MOD04_021EFB38: ; 0x021EFB38 @@ -26560,6 +27028,7 @@ MOD04_021EFB38: ; 0x021EFB38 ldrne r0, [sp] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFB38 arm_func_start MOD04_021EFB5C MOD04_021EFB5C: ; 0x021EFB5C @@ -26576,6 +27045,7 @@ MOD04_021EFB5C: ; 0x021EFB5C bl MOD04_021EFDD4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EFB5C arm_func_start MOD04_021EFB90 MOD04_021EFB90: ; 0x021EFB90 @@ -26585,6 +27055,7 @@ MOD04_021EFB90: ; 0x021EFB90 bx ip .align 2, 0 _021EFBA0: .word MOD04_021EFDD4 + arm_func_end MOD04_021EFB90 arm_func_start MOD04_021EFBA4 MOD04_021EFBA4: ; 0x021EFBA4 @@ -26600,6 +27071,7 @@ MOD04_021EFBA4: ; 0x021EFBA4 bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFBA4 arm_func_start MOD04_021EFBD4 MOD04_021EFBD4: ; 0x021EFBD4 @@ -26624,6 +27096,7 @@ _021EFBE8: bl MOD04_021EFDD4 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EFBD4 arm_func_start MOD04_021EFC24 MOD04_021EFC24: ; 0x021EFC24 @@ -26634,6 +27107,7 @@ MOD04_021EFC24: ; 0x021EFC24 bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFC24 arm_func_start MOD04_021EFC40 MOD04_021EFC40: ; 0x021EFC40 @@ -26651,6 +27125,7 @@ MOD04_021EFC40: ; 0x021EFC40 bl MOD04_021EFDD4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EFC40 arm_func_start MOD04_021EFC78 MOD04_021EFC78: ; 0x021EFC78 @@ -26661,6 +27136,7 @@ MOD04_021EFC78: ; 0x021EFC78 bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFC78 arm_func_start MOD04_021EFC94 MOD04_021EFC94: ; 0x021EFC94 @@ -26677,6 +27153,7 @@ MOD04_021EFC94: ; 0x021EFC94 bl MOD04_021EFDD4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021EFC94 arm_func_start MOD04_021EFCC8 MOD04_021EFCC8: ; 0x021EFCC8 @@ -26687,6 +27164,7 @@ MOD04_021EFCC8: ; 0x021EFCC8 bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFCC8 arm_func_start MOD04_021EFCE4 MOD04_021EFCE4: ; 0x021EFCE4 @@ -26708,6 +27186,7 @@ _021EFCF4: bl MOD04_021EFDD4 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021EFCE4 arm_func_start MOD04_021EFD28 MOD04_021EFD28: ; 0x021EFD28 @@ -26734,6 +27213,7 @@ _021EFD4C: bl MOD04_021EFDD4 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021EFD28 arm_func_start MOD04_021EFD80 MOD04_021EFD80: ; 0x021EFD80 @@ -26744,6 +27224,7 @@ MOD04_021EFD80: ; 0x021EFD80 bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFD80 arm_func_start MOD04_021EFD9C MOD04_021EFD9C: ; 0x021EFD9C @@ -26754,6 +27235,7 @@ MOD04_021EFD9C: ; 0x021EFD9C bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFD9C arm_func_start MOD04_021EFDB8 MOD04_021EFDB8: ; 0x021EFDB8 @@ -26764,6 +27246,7 @@ MOD04_021EFDB8: ; 0x021EFDB8 bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFDB8 arm_func_start MOD04_021EFDD4 MOD04_021EFDD4: ; 0x021EFDD4 @@ -26774,6 +27257,7 @@ MOD04_021EFDD4: ; 0x021EFDD4 bx lr .align 2, 0 _021EFDE8: .word UNK04_02210F3C + arm_func_end MOD04_021EFDD4 arm_func_start MOD04_021EFDEC MOD04_021EFDEC: ; 0x021EFDEC @@ -26812,6 +27296,7 @@ _021EFE54: _021EFE68: mov r0, #0 bx lr + arm_func_end MOD04_021EFDEC arm_func_start MOD04_021EFE70 MOD04_021EFE70: ; 0x021EFE70 @@ -26851,6 +27336,7 @@ _021EFEEC: .word UNK04_02210F40 _021EFEF0: .word UNK04_02210F38 _021EFEF4: .word UNK04_02210F64 _021EFEF8: .word UNK04_02210F50 + arm_func_end MOD04_021EFE70 arm_func_start MOD04_021EFEFC MOD04_021EFEFC: ; 0x021EFEFC @@ -26866,6 +27352,7 @@ MOD04_021EFEFC: ; 0x021EFEFC movne r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFEFC arm_func_start MOD04_021EFF2C MOD04_021EFF2C: ; 0x021EFF2C @@ -26881,6 +27368,7 @@ MOD04_021EFF2C: ; 0x021EFF2C movne r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021EFF2C arm_func_start MOD04_021EFF5C MOD04_021EFF5C: ; 0x021EFF5C @@ -26951,6 +27439,7 @@ _021F0044: str r1, [r4] add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021EFF5C arm_func_start MOD04_021F0054 MOD04_021F0054: ; 0x021F0054 @@ -26973,6 +27462,7 @@ MOD04_021F0054: ; 0x021F0054 .align 2, 0 _021F0094: .word 0x0000FFFF _021F0098: .word 0x00001001 + arm_func_end MOD04_021F0054 arm_func_start MOD04_021F009C MOD04_021F009C: ; 0x021F009C @@ -26995,6 +27485,7 @@ MOD04_021F009C: ; 0x021F009C .align 2, 0 _021F00DC: .word 0x0000FFFF _021F00E0: .word 0x00001002 + arm_func_end MOD04_021F009C arm_func_start MOD04_021F00E4 MOD04_021F00E4: ; 0x021F00E4 @@ -27018,6 +27509,7 @@ MOD04_021F00E4: ; 0x021F00E4 .align 2, 0 _021F0128: .word 0x0000FFFF _021F012C: .word 0x00001001 + arm_func_end MOD04_021F00E4 arm_func_start MOD04_021F0130 MOD04_021F0130: ; 0x021F0130 @@ -27041,6 +27533,7 @@ MOD04_021F0130: ; 0x021F0130 .align 2, 0 _021F0174: .word 0x0000FFFF _021F0178: .word 0x00001002 + arm_func_end MOD04_021F0130 arm_func_start MOD04_021F017C MOD04_021F017C: ; 0x021F017C @@ -27062,6 +27555,7 @@ MOD04_021F017C: ; 0x021F017C movne r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021F017C arm_func_start MOD04_021F01C4 MOD04_021F01C4: ; 0x021F01C4 @@ -27086,6 +27580,7 @@ _021F01FC: bx lr .align 2, 0 _021F0204: .word 0x0210420C + arm_func_end MOD04_021F01C4 arm_func_start MOD04_021F0208 MOD04_021F0208: ; 0x021F0208 @@ -27106,21 +27601,25 @@ _021F023C: mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021F0208 arm_func_start MOD04_021F0248 MOD04_021F0248: ; 0x021F0248 bx lr + arm_func_end MOD04_021F0248 arm_func_start MOD04_021F024C MOD04_021F024C: ; 0x021F024C bx lr + arm_func_end MOD04_021F024C arm_func_start MOD04_021F0250 MOD04_021F0250: ; 0x021F0250 - ldr ip, _021F0258 ; =0x020CAFC0 + ldr ip, _021F0258 ; =OS_Sleep bx ip .align 2, 0 -_021F0258: .word 0x020CAFC0 +_021F0258: .word OS_Sleep + arm_func_end MOD04_021F0250 arm_func_start MOD04_021F025C MOD04_021F025C: ; 0x021F025C @@ -27149,6 +27648,7 @@ _021F02A8: .word UNK04_0220D658 _021F02AC: .word UNK04_0220D678 _021F02B0: .word 0x00000109 _021F02B4: .word 0x000082EA + arm_func_end MOD04_021F025C arm_func_start MOD04_021F02B8 MOD04_021F02B8: ; 0x021F02B8 @@ -27194,6 +27694,7 @@ _021F0334: .align 2, 0 _021F0344: .word UNK04_0220D690 _021F0348: .word UNK04_0220D6E4 + arm_func_end MOD04_021F02B8 arm_func_start MOD04_021F034C MOD04_021F034C: ; 0x021F034C @@ -27349,6 +27850,7 @@ _021F0570: .word UNK04_0220D6C0 _021F0574: .word UNK04_0220D734 _021F0578: .word UNK04_0220D744 _021F057C: .word UNK04_0220D6CC + arm_func_end MOD04_021F034C arm_func_start MOD04_021F0580 MOD04_021F0580: ; 0x021F0580 @@ -27385,6 +27887,7 @@ _021F05DC: ldmfd sp!, {pc} .align 2, 0 _021F05F0: .word UNK04_0220D690 + arm_func_end MOD04_021F0580 arm_func_start MOD04_021F05F4 MOD04_021F05F4: ; 0x021F05F4 @@ -27419,6 +27922,7 @@ _021F0658: mov r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021F05F4 arm_func_start MOD04_021F0664 MOD04_021F0664: ; 0x021F0664 @@ -27458,6 +27962,7 @@ _021F06D8: mov r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021F0664 arm_func_start MOD04_021F06E4 MOD04_021F06E4: ; 0x021F06E4 @@ -27553,6 +28058,7 @@ _021F0818: .word UNK04_0220D760 _021F081C: .word UNK04_0220D770 _021F0820: .word UNK04_0220D77C _021F0824: .word 0x000005CF + arm_func_end MOD04_021F06E4 arm_func_start MOD04_021F0828 MOD04_021F0828: ; 0x021F0828 @@ -27573,6 +28079,7 @@ _021F0844: moveq r0, #0 streq r2, [r1] bx lr + arm_func_end MOD04_021F0828 arm_func_start MOD04_021F0864 MOD04_021F0864: ; 0x021F0864 @@ -27637,6 +28144,7 @@ _021F0934: ldmia sp!, {r4, r5, pc} .align 2, 0 _021F0940: .word UNK04_0220D690 + arm_func_end MOD04_021F0864 arm_func_start MOD04_021F0944 MOD04_021F0944: ; 0x021F0944 @@ -27671,6 +28179,7 @@ _021F09A0: ldmfd sp!, {pc} .align 2, 0 _021F09AC: .word UNK04_0220D690 + arm_func_end MOD04_021F0944 arm_func_start MOD04_021F09B0 MOD04_021F09B0: ; 0x021F09B0 @@ -27777,6 +28286,7 @@ _021F0B20: .word UNK04_0220D6C0 _021F0B24: .word UNK04_0220D7A0 _021F0B28: .word UNK04_0220D7B0 _021F0B2C: .word UNK04_0220D6CC + arm_func_end MOD04_021F09B0 arm_func_start MOD04_021F0B30 MOD04_021F0B30: ; 0x021F0B30 @@ -27811,6 +28321,7 @@ _021F0B8C: ldmfd sp!, {pc} .align 2, 0 _021F0B98: .word UNK04_0220D690 + arm_func_end MOD04_021F0B30 arm_func_start MOD04_021F0B9C MOD04_021F0B9C: ; 0x021F0B9C @@ -27879,6 +28390,7 @@ _021F0C64: .align 2, 0 _021F0C7C: .word UNK04_0220D6D4 _021F0C80: .word UNK04_0220D690 + arm_func_end MOD04_021F0B9C arm_func_start MOD04_021F0C84 MOD04_021F0C84: ; 0x021F0C84 @@ -27939,6 +28451,7 @@ _021F0D0C: .align 2, 0 _021F0D4C: .word UNK04_0220D6D4 _021F0D50: .word 0x00000601 + arm_func_end MOD04_021F0C84 arm_func_start MOD04_021F0D54 MOD04_021F0D54: ; 0x021F0D54 @@ -27956,6 +28469,7 @@ MOD04_021F0D54: ; 0x021F0D54 mov r0, r4 bl MOD04_021F14C0 ldmia sp!, {r4, pc} + arm_func_end MOD04_021F0D54 arm_func_start MOD04_021F0D8C MOD04_021F0D8C: ; 0x021F0D8C @@ -28041,6 +28555,7 @@ _021F0E5C: .align 2, 0 _021F0EA8: .word UNK04_0220D6D4 _021F0EAC: .word UNK04_0220D7BC + arm_func_end MOD04_021F0D8C arm_func_start MOD04_021F0EB0 MOD04_021F0EB0: ; 0x021F0EB0 @@ -28075,6 +28590,7 @@ _021F0EFC: ldmfd sp!, {pc} .align 2, 0 _021F0F14: .word UNK04_0220D7C0 + arm_func_end MOD04_021F0EB0 arm_func_start MOD04_021F0F18 MOD04_021F0F18: ; 0x021F0F18 @@ -28099,6 +28615,7 @@ _021F0F40: bl MOD04_021F0FD4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021F0F18 arm_func_start MOD04_021F0F64 MOD04_021F0F64: ; 0x021F0F64 @@ -28114,6 +28631,7 @@ MOD04_021F0F64: ; 0x021F0F64 bl MOD04_021F1620 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021F0F64 arm_func_start MOD04_021F0F94 MOD04_021F0F94: ; 0x021F0F94 @@ -28134,6 +28652,7 @@ MOD04_021F0F94: ; 0x021F0F94 ldmfd sp!, {pc} .align 2, 0 _021F0FD0: .word UNK04_02210E5C + arm_func_end MOD04_021F0F94 arm_func_start MOD04_021F0FD4 MOD04_021F0FD4: ; 0x021F0FD4 @@ -28262,6 +28781,7 @@ _021F1180: .word UNK04_0220D8C8 _021F1184: .word 0x000001B5 _021F1188: .word UNK04_0220D8D0 _021F118C: .word 0x000001DB + arm_func_end MOD04_021F0FD4 arm_func_start MOD04_021F1190 MOD04_021F1190: ; 0x021F1190 @@ -28482,6 +29002,7 @@ _021F14B0: .word UNK04_0220D958 _021F14B4: .word UNK04_0220D960 _021F14B8: .word UNK04_0220D968 _021F14BC: .word UNK04_0220D998 + arm_func_end MOD04_021F1190 arm_func_start MOD04_021F14C0 MOD04_021F14C0: ; 0x021F14C0 @@ -28569,6 +29090,7 @@ _021F15B4: ldmia sp!, {r4, r5, pc} .align 2, 0 _021F1600: .word MOD04_021F1604 + arm_func_end MOD04_021F14C0 arm_func_start MOD04_021F1604 MOD04_021F1604: ; 0x021F1604 @@ -28579,6 +29101,7 @@ MOD04_021F1604: ; 0x021F1604 str r0, [r1, #0x18] mov r0, #1 bx lr + arm_func_end MOD04_021F1604 arm_func_start MOD04_021F1620 MOD04_021F1620: ; 0x021F1620 @@ -28600,6 +29123,7 @@ MOD04_021F1620: ; 0x021F1620 str r0, [r5] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021F1620 arm_func_start MOD04_021F1668 MOD04_021F1668: ; 0x021F1668 @@ -28689,6 +29213,7 @@ _021F178C: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021F17AC: .word UNK04_0220D9C0 + arm_func_end MOD04_021F1668 arm_func_start MOD04_021F17B0 MOD04_021F17B0: ; 0x021F17B0 @@ -28806,6 +29331,7 @@ _021F1950: .word UNK04_0220DA34 _021F1954: .word 0x000001FD _021F1958: .word UNK04_0220DA40 _021F195C: .word MOD04_021F1960 + arm_func_end MOD04_021F17B0 arm_func_start MOD04_021F1960 MOD04_021F1960: ; 0x021F1960 @@ -28819,6 +29345,7 @@ MOD04_021F1960: ; 0x021F1960 _021F197C: mov r0, #1 bx lr + arm_func_end MOD04_021F1960 arm_func_start MOD04_021F1984 MOD04_021F1984: ; 0x021F1984 @@ -28882,6 +29409,7 @@ _021F1A54: ldmia sp!, {r4, r5, pc} .align 2, 0 _021F1A60: .word UNK04_0220D9E4 + arm_func_end MOD04_021F1984 arm_func_start MOD04_021F1A64 MOD04_021F1A64: ; 0x021F1A64 @@ -28952,6 +29480,7 @@ _021F1B3C: moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_021F1A64 arm_func_start MOD04_021F1B60 MOD04_021F1B60: ; 0x021F1B60 @@ -29014,6 +29543,7 @@ _021F1C38: .word UNK04_0220DA04 _021F1C3C: .word UNK04_0220DA74 _021F1C40: .word UNK04_0220DA78 _021F1C44: .word UNK04_0220DA20 + arm_func_end MOD04_021F1B60 arm_func_start MOD04_021F1C48 MOD04_021F1C48: ; 0x021F1C48 @@ -29699,6 +30229,7 @@ _021F264C: .word UNK04_0220DAEC _021F2650: .word UNK04_0220DAF4 _021F2654: .word UNK04_0220DAF8 _021F2658: .word UNK04_0220DAFC + arm_func_end MOD04_021F1C48 arm_func_start MOD04_021F265C MOD04_021F265C: ; 0x021F265C @@ -29745,6 +30276,7 @@ _021F26F4: .word UNK04_0220DA04 _021F26F8: .word UNK04_0220DB0C _021F26FC: .word UNK04_0220DB1C _021F2700: .word UNK04_0220DA20 + arm_func_end MOD04_021F265C arm_func_start MOD04_021F2704 MOD04_021F2704: ; 0x021F2704 @@ -29778,6 +30310,7 @@ _021F2758: strb r0, [r2, r1] str r0, [r4, #0xc] ldmia sp!, {r4, pc} + arm_func_end MOD04_021F2704 arm_func_start MOD04_021F2770 MOD04_021F2770: ; 0x021F2770 @@ -29863,6 +30396,7 @@ _021F2894: _021F28A0: .word UNK04_0220DB24 _021F28A4: .word UNK04_0220DB2C _021F28A8: .word UNK04_0220DB30 + arm_func_end MOD04_021F2770 arm_func_start MOD04_021F28AC MOD04_021F28AC: ; 0x021F28AC @@ -29971,6 +30505,7 @@ _021F2A1C: .word 0x000001DE _021F2A20: .word UNK04_0220DB68 _021F2A24: .word 0x000001DF _021F2A28: .word UNK04_0220DB74 + arm_func_end MOD04_021F28AC arm_func_start MOD04_021F2A2C MOD04_021F2A2C: ; 0x021F2A2C @@ -30124,6 +30659,7 @@ _021F2C48: .word UNK04_0220DBD4 _021F2C4C: .word UNK04_0220DBE4 _021F2C50: .word UNK04_0220DC10 _021F2C54: .word UNK04_0220DC34 + arm_func_end MOD04_021F2A2C arm_func_start MOD04_021F2C58 MOD04_021F2C58: ; 0x021F2C58 @@ -30139,6 +30675,7 @@ MOD04_021F2C58: ; 0x021F2C58 mov r2, r4 bl MOD04_021F2C88 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021F2C58 arm_func_start MOD04_021F2C88 MOD04_021F2C88: ; 0x021F2C88 @@ -30212,6 +30749,7 @@ _021F2D74: _021F2D80: .word UNK04_0220DC4C _021F2D84: .word UNK04_0220DB50 _021F2D88: .word UNK04_0220DC70 + arm_func_end MOD04_021F2C88 arm_func_start MOD04_021F2D8C MOD04_021F2D8C: ; 0x021F2D8C @@ -30273,6 +30811,7 @@ _021F2E3C: _021F2E5C: .word UNK04_0220DC4C _021F2E60: .word UNK04_0220DB50 _021F2E64: .word UNK04_0220DC70 + arm_func_end MOD04_021F2D8C arm_func_start MOD04_021F2E68 MOD04_021F2E68: ; 0x021F2E68 @@ -30344,6 +30883,7 @@ _021F2F54: .align 2, 0 _021F2F5C: .word UNK04_0220DC74 _021F2F60: .word UNK04_0220DC9C + arm_func_end MOD04_021F2E68 arm_func_start MOD04_021F2F64 MOD04_021F2F64: ; 0x021F2F64 @@ -30362,6 +30902,7 @@ MOD04_021F2F64: ; 0x021F2F64 ldmia sp!, {r4, r5, pc} .align 2, 0 _021F2F98: .word UNK04_0220DC48 + arm_func_end MOD04_021F2F64 arm_func_start MOD04_021F2F9C MOD04_021F2F9C: ; 0x021F2F9C @@ -30377,6 +30918,7 @@ MOD04_021F2F9C: ; 0x021F2F9C mov r2, r4 bl MOD04_021F2FCC ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021F2F9C arm_func_start MOD04_021F2FCC MOD04_021F2FCC: ; 0x021F2FCC @@ -30451,6 +30993,7 @@ _021F30C4: .word UNK04_0220DB50 _021F30C8: .word UNK04_0220DCD0 _021F30CC: .word UNK04_0220DB38 _021F30D0: .word UNK04_0220DBD4 + arm_func_end MOD04_021F2FCC arm_func_start MOD04_021F30D4 MOD04_021F30D4: ; 0x021F30D4 @@ -30496,6 +31039,7 @@ _021F3138: _021F3164: .word UNK04_0220DB38 _021F3168: .word UNK04_0220DB50 _021F316C: .word UNK04_0220DBD4 + arm_func_end MOD04_021F30D4 arm_func_start MOD04_021F3170 MOD04_021F3170: ; 0x021F3170 @@ -30569,6 +31113,7 @@ _021F324C: _021F3258: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end MOD04_021F3170 arm_func_start MOD04_021F3260 MOD04_021F3260: ; 0x021F3260 @@ -30710,6 +31255,7 @@ _021F342C: _021F3448: .word UNK04_0220DCE0 _021F344C: .word UNK04_0220DD00 _021F3450: .word UNK04_0220DD10 + arm_func_end MOD04_021F3260 arm_func_start MOD04_021F3454 MOD04_021F3454: ; 0x021F3454 @@ -30758,6 +31304,7 @@ _021F3494: bx lr .align 2, 0 _021F34FC: .word UNK04_0220DD24 + arm_func_end MOD04_021F3454 arm_func_start MOD04_021F3500 MOD04_021F3500: ; 0x021F3500 @@ -30826,6 +31373,7 @@ _021F35E4: .word UNK04_0220DD34 _021F35E8: .word UNK04_0220DD00 _021F35EC: .word UNK04_0220DD48 _021F35F0: .word UNK04_0220DD60 + arm_func_end MOD04_021F3500 arm_func_start MOD04_021F35F4 MOD04_021F35F4: ; 0x021F35F4 @@ -30952,6 +31500,7 @@ _021F37A8: .word UNK04_0220DDD0 _021F37AC: .word UNK04_0220DDE4 _021F37B0: .word UNK04_0220DDEC _021F37B4: .word MOD04_021F37B8 + arm_func_end MOD04_021F35F4 arm_func_start MOD04_021F37B8 MOD04_021F37B8: ; 0x021F37B8 @@ -31008,6 +31557,7 @@ _021F3864: _021F3878: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021F37B8 arm_func_start MOD04_021F3880 MOD04_021F3880: ; 0x021F3880 @@ -31059,6 +31609,7 @@ _021F3924: .word UNK04_0220DDF0 _021F3928: .word UNK04_0220DE18 _021F392C: .word UNK04_0220DE30 _021F3930: .word 0x000002EF + arm_func_end MOD04_021F3880 arm_func_start MOD04_021F3934 MOD04_021F3934: ; 0x021F3934 @@ -31529,6 +32080,7 @@ _021F400C: .word UNK04_0220DF28 _021F4010: .word UNK04_0220DF5C _021F4014: .word UNK04_0220DF64 _021F4018: .word UNK04_0220DF84 + arm_func_end MOD04_021F3934 arm_func_start MOD04_021F401C MOD04_021F401C: ; 0x021F401C @@ -31705,6 +32257,7 @@ _021F42A8: .word 0x000002C2 _021F42AC: .word UNK04_0220DFE8 _021F42B0: .word UNK04_0220DFF4 _021F42B4: .word UNK04_0220DDE4 + arm_func_end MOD04_021F401C arm_func_start MOD04_021F42B8 MOD04_021F42B8: ; 0x021F42B8 @@ -31955,6 +32508,7 @@ _021F4660: .word UNK04_02210EA0 _021F4664: .word UNK04_0220DFD8 _021F4668: .word UNK04_0220DFF4 _021F466C: .word UNK04_0220DDE4 + arm_func_end MOD04_021F42B8 arm_func_start MOD04_021F4670 MOD04_021F4670: ; 0x021F4670 @@ -32119,6 +32673,7 @@ _021F48B8: .word 0x00000177 _021F48BC: .word UNK04_0220DF84 _021F48C0: .word 0x000001C2 _021F48C4: .word 0x000002C2 + arm_func_end MOD04_021F4670 arm_func_start MOD04_021F48C8 MOD04_021F48C8: ; 0x021F48C8 @@ -32359,6 +32914,7 @@ _021F4C38: .word UNK04_0220E178 _021F4C3C: .word UNK04_0220DE30 _021F4C40: .word 0x0000CC74 _021F4C44: .word UNK04_0220E198 + arm_func_end MOD04_021F48C8 arm_func_start MOD04_021F4C48 MOD04_021F4C48: ; 0x021F4C48 @@ -32394,6 +32950,7 @@ _021F4CA0: _021F4CB0: .word UNK04_0220E1C0 _021F4CB4: .word 0x08421085 _021F4CB8: .word 0x0000003E + arm_func_end MOD04_021F4C48 arm_func_start MOD04_021F4CBC MOD04_021F4CBC: ; 0x021F4CBC @@ -32448,6 +33005,7 @@ MOD04_021F4CBC: ; 0x021F4CBC mov r0, #0 str r0, [r4, #0xc] ldmia sp!, {r4, pc} + arm_func_end MOD04_021F4CBC arm_func_start MOD04_021F4D88 MOD04_021F4D88: ; 0x021F4D88 @@ -32508,6 +33066,7 @@ _021F4E50: movne r0, #1 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021F4D88 arm_func_start MOD04_021F4E64 MOD04_021F4E64: ; 0x021F4E64 @@ -32625,6 +33184,7 @@ _021F5008: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021F5014: .word UNK04_0220E200 + arm_func_end MOD04_021F4E64 arm_func_start MOD04_021F5018 MOD04_021F5018: ; 0x021F5018 @@ -32669,6 +33229,7 @@ _021F50A8: .word UNK04_0220E210 _021F50AC: .word UNK04_0220E228 _021F50B0: .word UNK04_0220E234 _021F50B4: .word UNK04_0220E23C + arm_func_end MOD04_021F5018 arm_func_start MOD04_021F50B8 MOD04_021F50B8: ; 0x021F50B8 @@ -33220,6 +33781,7 @@ _021F5890: .word UNK04_0220E374 _021F5894: .word UNK04_0220E37C _021F5898: .word UNK04_0220E384 _021F589C: .word UNK04_0220E248 + arm_func_end MOD04_021F50B8 arm_func_start MOD04_021F58A0 MOD04_021F58A0: ; 0x021F58A0 @@ -33560,6 +34122,7 @@ _021F5D68: .word UNK04_0220E374 _021F5D6C: .word UNK04_0220E37C _021F5D70: .word UNK04_0220E384 _021F5D74: .word UNK04_0220E248 + arm_func_end MOD04_021F58A0 arm_func_start MOD04_021F5D78 MOD04_021F5D78: ; 0x021F5D78 @@ -33579,6 +34142,7 @@ MOD04_021F5D78: ; 0x021F5D78 cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021F5D78 arm_func_start MOD04_021F5DB8 MOD04_021F5DB8: ; 0x021F5DB8 @@ -33598,6 +34162,7 @@ MOD04_021F5DB8: ; 0x021F5DB8 cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021F5DB8 arm_func_start MOD04_021F5DF8 MOD04_021F5DF8: ; 0x021F5DF8 @@ -33653,6 +34218,7 @@ _021F5EA8: _021F5EB0: .word UNK04_0220E42C _021F5EB4: .word UNK04_0220E23C _021F5EB8: .word UNK04_0220E444 + arm_func_end MOD04_021F5DF8 arm_func_start MOD04_021F5EBC MOD04_021F5EBC: ; 0x021F5EBC @@ -34204,6 +34770,7 @@ _021F66C4: .word UNK04_0220E4CC _021F66C8: .word UNK04_0220E4D4 _021F66CC: .word UNK04_0220E4DC _021F66D0: .word UNK04_0220E200 + arm_func_end MOD04_021F5EBC arm_func_start MOD04_021F66D4 MOD04_021F66D4: ; 0x021F66D4 @@ -34345,6 +34912,7 @@ _021F6844: ldmia sp!, {r4, r5, pc} .align 2, 0 _021F68D4: .word 0x0000010B + arm_func_end MOD04_021F66D4 arm_func_start MOD04_021F68D8 MOD04_021F68D8: ; 0x021F68D8 @@ -34394,6 +34962,7 @@ _021F6978: .word 0x0000FFFF _021F697C: .word UNK04_0220E4E4 _021F6980: .word UNK04_0220E4A0 _021F6984: .word UNK04_0220E4FC + arm_func_end MOD04_021F68D8 arm_func_start MOD04_021F6988 MOD04_021F6988: ; 0x021F6988 @@ -34526,6 +35095,7 @@ _021F6B40: .word 0x00000064 _021F6B44: .word 0x00000190 _021F6B48: .word 0x0000076C _021F6B4C: .word 0x0000081F + arm_func_end MOD04_021F6988 arm_func_start MOD04_021F6B50 MOD04_021F6B50: ; 0x021F6B50 @@ -34579,6 +35149,7 @@ _021F6BE8: .word UNK04_0220E50C _021F6BEC: .word UNK04_0220E554 _021F6BF0: .word UNK04_0220E558 _021F6BF4: .word 0x00000146 + arm_func_end MOD04_021F6B50 arm_func_start MOD04_021F6BF8 MOD04_021F6BF8: ; 0x021F6BF8 @@ -34601,6 +35172,7 @@ _021F6C24: _021F6C30: mov r0, #0 bx lr + arm_func_end MOD04_021F6BF8 arm_func_start MOD04_021F6C38 MOD04_021F6C38: ; 0x021F6C38 @@ -34626,6 +35198,7 @@ _021F6C70: strne r0, [r1] mov r0, #0 bx lr + arm_func_end MOD04_021F6C38 arm_func_start MOD04_021F6C84 MOD04_021F6C84: ; 0x021F6C84 @@ -34655,6 +35228,7 @@ _021F6CCC: bne _021F6CA4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021F6C84 arm_func_start MOD04_021F6CE4 MOD04_021F6CE4: ; 0x021F6CE4 @@ -34703,6 +35277,7 @@ _021F6D64: .align 2, 0 _021F6D84: .word UNK04_0220E568 _021F6D88: .word UNK04_0220E558 + arm_func_end MOD04_021F6CE4 arm_func_start MOD04_021F6D8C MOD04_021F6D8C: ; 0x021F6D8C @@ -34755,6 +35330,7 @@ _021F6E10: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021F6E40: .word UNK04_0220E588 + arm_func_end MOD04_021F6D8C arm_func_start MOD04_021F6E44 MOD04_021F6E44: ; 0x021F6E44 @@ -34984,6 +35560,7 @@ _021F7174: .word UNK04_0220E5C0 _021F7178: .word UNK04_0220E588 _021F717C: .word 0x00000201 _021F7180: .word UNK04_0220E554 + arm_func_end MOD04_021F6E44 arm_func_start MOD04_021F7184 MOD04_021F7184: ; 0x021F7184 @@ -35048,6 +35625,7 @@ _021F725C: .word UNK04_0220E5E4 _021F7260: .word 0x00000389 _021F7264: .word UNK04_0220E5F0 _021F7268: .word UNK04_0220E5F4 + arm_func_end MOD04_021F7184 arm_func_start MOD04_021F726C MOD04_021F726C: ; 0x021F726C @@ -35085,6 +35663,7 @@ _021F72DC: .word UNK04_0220E604 _021F72E0: .word UNK04_0220E5E4 _021F72E4: .word 0x00000376 _021F72E8: .word UNK04_0220E610 + arm_func_end MOD04_021F726C arm_func_start MOD04_021F72EC MOD04_021F72EC: ; 0x021F72EC @@ -35190,6 +35769,7 @@ _021F7468: .word 0x00000341 _021F746C: .word UNK04_0220E634 _021F7470: .word UNK04_0220E638 _021F7474: .word UNK04_0220E640 + arm_func_end MOD04_021F72EC arm_func_start MOD04_021F7478 MOD04_021F7478: ; 0x021F7478 @@ -35300,6 +35880,7 @@ _021F7600: .word UNK04_0220E648 _021F7604: .word UNK04_0220E664 _021F7608: .word UNK04_0220E68C _021F760C: .word UNK04_0220E6C0 + arm_func_end MOD04_021F7478 arm_func_start MOD04_021F7610 MOD04_021F7610: ; 0x021F7610 @@ -35328,6 +35909,7 @@ MOD04_021F7610: ; 0x021F7610 moveq r0, #0 add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021F7610 arm_func_start MOD04_021F7674 MOD04_021F7674: ; 0x021F7674 @@ -35368,6 +35950,7 @@ MOD04_021F7674: ; 0x021F7674 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021F7700: .word MOD04_021F7704 + arm_func_end MOD04_021F7674 arm_func_start MOD04_021F7704 MOD04_021F7704: ; 0x021F7704 @@ -35378,6 +35961,7 @@ MOD04_021F7704: ; 0x021F7704 mov r0, #0 str r0, [r4] ldmia sp!, {r4, pc} + arm_func_end MOD04_021F7704 arm_func_start MOD04_021F7720 MOD04_021F7720: ; 0x021F7720 @@ -35399,6 +35983,7 @@ _021F7748: _021F7754: mov r0, #0 bx lr + arm_func_end MOD04_021F7720 arm_func_start MOD04_021F775C MOD04_021F775C: ; 0x021F775C @@ -35470,6 +36055,7 @@ _021F7848: mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021F775C arm_func_start MOD04_021F7854 MOD04_021F7854: ; 0x021F7854 @@ -35503,6 +36089,7 @@ MOD04_021F7854: ; 0x021F7854 mov r0, r4 bl MOD04_021F0054 ldmia sp!, {r4, pc} + arm_func_end MOD04_021F7854 arm_func_start MOD04_021F78CC MOD04_021F78CC: ; 0x021F78CC @@ -35584,6 +36171,7 @@ _021F79D0: .word 0x00000213 _021F79D4: .word UNK04_0220E6E8 _021F79D8: .word 0x00000225 _021F79DC: .word UNK04_0220E6EC + arm_func_end MOD04_021F78CC arm_func_start MOD04_021F79E0 MOD04_021F79E0: ; 0x021F79E0 @@ -35612,6 +36200,7 @@ _021F7A34: mov r0, r4 bl MOD04_021DD82C ldmia sp!, {r4, pc} + arm_func_end MOD04_021F79E0 arm_func_start MOD04_021F7A40 MOD04_021F7A40: ; 0x021F7A40 @@ -35661,6 +36250,7 @@ _021F7AD0: _021F7AD8: .word UNK04_0220E710 _021F7ADC: .word UNK04_0220E5E4 _021F7AE0: .word 0x000001D9 + arm_func_end MOD04_021F7A40 arm_func_start MOD04_021F7AE4 MOD04_021F7AE4: ; 0x021F7AE4 @@ -35839,6 +36429,7 @@ _021F7D38: _021F7D60: .word UNK04_0220E738 _021F7D64: .word UNK04_0220E73C _021F7D68: .word UNK04_0220E74C + arm_func_end MOD04_021F7AE4 arm_func_start MOD04_021F7D6C MOD04_021F7D6C: ; 0x021F7D6C @@ -35899,6 +36490,7 @@ _021F7E2C: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _021F7E38: .word UNK04_0220E738 + arm_func_end MOD04_021F7D6C arm_func_start MOD04_021F7E3C MOD04_021F7E3C: ; 0x021F7E3C @@ -36055,6 +36647,7 @@ _021F8078: .word 0x00000177 _021F807C: .word UNK04_0220E798 _021F8080: .word UNK04_0220E7A0 _021F8084: .word UNK04_0220E7A8 + arm_func_end MOD04_021F7E3C arm_func_start MOD04_021F8088 MOD04_021F8088: ; 0x021F8088 @@ -36293,6 +36886,7 @@ _021F83DC: .word UNK04_0220E7A8 _021F83E0: .word UNK04_0220E7D4 _021F83E4: .word UNK04_0220E6E8 _021F83E8: .word UNK04_0220E5E4 + arm_func_end MOD04_021F8088 arm_func_start MOD04_021F83EC MOD04_021F83EC: ; 0x021F83EC @@ -36314,6 +36908,7 @@ MOD04_021F83EC: ; 0x021F83EC _021F8428: mov r0, #0 bx lr + arm_func_end MOD04_021F83EC arm_func_start MOD04_021F8430 MOD04_021F8430: ; 0x021F8430 @@ -36330,6 +36925,7 @@ MOD04_021F8430: ; 0x021F8430 ldmfd sp!, {pc} .align 2, 0 _021F845C: .word MOD04_021F8460 + arm_func_end MOD04_021F8430 arm_func_start MOD04_021F8460 MOD04_021F8460: ; 0x021F8460 @@ -36345,6 +36941,7 @@ MOD04_021F8460: ; 0x021F8460 _021F8484: mov r0, #1 bx lr + arm_func_end MOD04_021F8460 arm_func_start MOD04_021F848C MOD04_021F848C: ; 0x021F848C @@ -36365,6 +36962,7 @@ MOD04_021F848C: ; 0x021F848C ldmfd sp!, {pc} .align 2, 0 _021F84C8: .word MOD04_021F84CC + arm_func_end MOD04_021F848C arm_func_start MOD04_021F84CC MOD04_021F84CC: ; 0x021F84CC @@ -36378,6 +36976,7 @@ MOD04_021F84CC: ; 0x021F84CC blx r3 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021F84CC arm_func_start MOD04_021F84F4 MOD04_021F84F4: ; 0x021F84F4 @@ -36401,6 +37000,7 @@ MOD04_021F84F4: ; 0x021F84F4 ldmia sp!, {r4, pc} .align 2, 0 _021F853C: .word MOD04_021F8540 + arm_func_end MOD04_021F84F4 arm_func_start MOD04_021F8540 MOD04_021F8540: ; 0x021F8540 @@ -36429,6 +37029,7 @@ MOD04_021F8540: ; 0x021F8540 _021F8598: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021F8540 arm_func_start MOD04_021F85A0 MOD04_021F85A0: ; 0x021F85A0 @@ -36438,6 +37039,7 @@ MOD04_021F85A0: ; 0x021F85A0 bx ip .align 2, 0 _021F85B0: .word MOD04_021EF3F4 + arm_func_end MOD04_021F85A0 arm_func_start MOD04_021F85B4 MOD04_021F85B4: ; 0x021F85B4 @@ -36454,6 +37056,7 @@ MOD04_021F85B4: ; 0x021F85B4 bl MOD04_021EF3F4 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021F85B4 arm_func_start MOD04_021F85E8 MOD04_021F85E8: ; 0x021F85E8 @@ -36472,6 +37075,7 @@ MOD04_021F85E8: ; 0x021F85E8 moveq r0, #0 add sp, sp, #0x20 ldmia sp!, {r4, pc} + arm_func_end MOD04_021F85E8 arm_func_start MOD04_021F8624 MOD04_021F8624: ; 0x021F8624 @@ -36536,6 +37140,7 @@ _021F8700: .word 0x00000428 _021F8704: .word UNK04_0220E7F4 _021F8708: .word UNK04_0220E7FC _021F870C: .word 0x000002B5 + arm_func_end MOD04_021F8624 arm_func_start MOD04_021F8710 MOD04_021F8710: ; 0x021F8710 @@ -36632,6 +37237,7 @@ _021F8860: .word UNK04_0220E80C _021F8864: .word UNK04_0220E814 _021F8868: .word UNK04_0220E844 _021F886C: .word UNK04_0220E850 + arm_func_end MOD04_021F8710 arm_func_start MOD04_021F8870 MOD04_021F8870: ; 0x021F8870 @@ -36659,6 +37265,7 @@ MOD04_021F8870: ; 0x021F8870 _021F88C0: .word MOD04_021F88CC _021F88C4: .word MOD04_021F8958 _021F88C8: .word MOD04_021F8948 + arm_func_end MOD04_021F8870 arm_func_start MOD04_021F88CC MOD04_021F88CC: ; 0x021F88CC @@ -36694,6 +37301,7 @@ _021F891C: mov r0, #0 str r0, [r4, #0x18] ldmia sp!, {r4, pc} + arm_func_end MOD04_021F88CC arm_func_start MOD04_021F8948 MOD04_021F8948: ; 0x021F8948 @@ -36701,6 +37309,7 @@ MOD04_021F8948: ; 0x021F8948 ldr r0, [r1] sub r0, r2, r0 bx lr + arm_func_end MOD04_021F8948 arm_func_start MOD04_021F8958 MOD04_021F8958: ; 0x021F8958 @@ -36711,6 +37320,7 @@ MOD04_021F8958: ; 0x021F8958 mov r0, r1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021F8958 arm_func_start MOD04_021F8974 MOD04_021F8974: ; 0x021F8974 @@ -36813,6 +37423,7 @@ _021F8AC0: .word UNK04_0220E8A0 _021F8AC4: .word UNK04_0220E8B0 _021F8AC8: .word UNK04_0220E8D0 _021F8ACC: .word 0x00000563 + arm_func_end MOD04_021F8974 arm_func_start MOD04_021F8AD0 MOD04_021F8AD0: ; 0x021F8AD0 @@ -38751,6 +39362,7 @@ _021FA760: .word UNK04_0220EB2C _021FA764: .word UNK04_0220EB34 _021FA768: .word 0x00000515 _021FA76C: .word 0x0000052A + arm_func_end MOD04_021F8AD0 arm_func_start MOD04_021FA770 MOD04_021FA770: ; 0x021FA770 @@ -38889,6 +39501,7 @@ _021FA904: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _021FA958: .word UNK04_0220EB54 + arm_func_end MOD04_021FA770 arm_func_start MOD04_021FA95C MOD04_021FA95C: ; 0x021FA95C @@ -38930,6 +39543,7 @@ _021FA9E4: mov r0, #0 add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FA95C arm_func_start MOD04_021FA9F0 MOD04_021FA9F0: ; 0x021FA9F0 @@ -38984,6 +39598,7 @@ _021FAA2C: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021FAAB0: .word UNK04_0220E8A0 + arm_func_end MOD04_021FA9F0 arm_func_start MOD04_021FAAB4 MOD04_021FAAB4: ; 0x021FAAB4 @@ -39125,6 +39740,7 @@ _021FACB0: .word UNK04_0220EBF4 _021FACB4: .word UNK04_0220E8D0 _021FACB8: .word 0x0000CD74 _021FACBC: .word UNK04_0220EC14 + arm_func_end MOD04_021FAAB4 arm_func_start MOD04_021FACC0 MOD04_021FACC0: ; 0x021FACC0 @@ -39162,6 +39778,7 @@ MOD04_021FACC0: ; 0x021FACC0 .align 2, 0 _021FAD3C: .word UNK04_0220EC3C _021FAD40: .word UNK04_0220EC44 + arm_func_end MOD04_021FACC0 arm_func_start MOD04_021FAD44 MOD04_021FAD44: ; 0x021FAD44 @@ -39207,6 +39824,7 @@ MOD04_021FAD44: ; 0x021FAD44 .align 2, 0 _021FADE0: .word UNK04_0220EC50 _021FADE4: .word UNK04_0220EC54 + arm_func_end MOD04_021FAD44 arm_func_start MOD04_021FADE8 MOD04_021FADE8: ; 0x021FADE8 @@ -39279,6 +39897,7 @@ _021FAEC8: _021FAEE0: .word UNK04_0220EC6C _021FAEE4: .word UNK04_0220EC74 _021FAEE8: .word UNK04_0220ECA4 + arm_func_end MOD04_021FADE8 arm_func_start MOD04_021FAEEC MOD04_021FAEEC: ; 0x021FAEEC @@ -39288,6 +39907,7 @@ MOD04_021FAEEC: ; 0x021FAEEC bx ip .align 2, 0 _021FAEFC: .word MOD04_021FB3DC + arm_func_end MOD04_021FAEEC arm_func_start MOD04_021FAF00 MOD04_021FAF00: ; 0x021FAF00 @@ -39302,6 +39922,7 @@ MOD04_021FAF00: ; 0x021FAF00 str r5, [r4, #0x418] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FAF00 arm_func_start MOD04_021FAF2C MOD04_021FAF2C: ; 0x021FAF2C @@ -39434,6 +40055,7 @@ _021FB0EC: .word UNK04_0220ECE0 _021FB0F0: .word 0x0000019B _021FB0F4: .word UNK04_0220ECF0 _021FB0F8: .word 0x000001FF + arm_func_end MOD04_021FAF2C arm_func_start MOD04_021FB0FC MOD04_021FB0FC: ; 0x021FB0FC @@ -39502,6 +40124,7 @@ _021FB1E0: .word UNK04_0220ED00 _021FB1E4: .word UNK04_0220ED14 _021FB1E8: .word UNK04_0220ED4C _021FB1EC: .word UNK04_0220ED64 + arm_func_end MOD04_021FB0FC arm_func_start MOD04_021FB1F0 MOD04_021FB1F0: ; 0x021FB1F0 @@ -39579,6 +40202,7 @@ _021FB2E8: .word 0x0000010E _021FB2EC: .word UNK04_0220ECE0 _021FB2F0: .word 0x0000010F _021FB2F4: .word UNK04_0220ED8C + arm_func_end MOD04_021FB1F0 arm_func_start MOD04_021FB2F8 MOD04_021FB2F8: ; 0x021FB2F8 @@ -39640,12 +40264,14 @@ _021FB3C0: .word UNK04_0220ED94 _021FB3C4: .word UNK04_0220ED9C _021FB3C8: .word UNK04_0220EDA4 _021FB3CC: .word UNK04_0220EDB0 + arm_func_end MOD04_021FB2F8 arm_func_start MOD04_021FB3D0 MOD04_021FB3D0: ; 0x021FB3D0 stmdb sp!, {r0, r1, r2, r3} add sp, sp, #0x10 bx lr + arm_func_end MOD04_021FB3D0 arm_func_start MOD04_021FB3DC MOD04_021FB3DC: ; 0x021FB3DC @@ -39680,6 +40306,7 @@ _021FB420: _021FB440: .word UNK04_0220EDB8 _021FB444: .word UNK04_0220ECC4 _021FB448: .word UNK04_0220EDC8 + arm_func_end MOD04_021FB3DC arm_func_start MOD04_021FB44C MOD04_021FB44C: ; 0x021FB44C @@ -39745,6 +40372,7 @@ _021FB520: .word UNK04_02210F84 _021FB524: .word UNK04_0220BBC8 _021FB528: .word UNK04_0220EDEC _021FB52C: .word UNK04_0220EDD8 + arm_func_end MOD04_021FB44C arm_func_start MOD04_021FB530 MOD04_021FB530: ; 0x021FB530 @@ -39828,6 +40456,7 @@ _021FB638: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021FB650: .word UNK04_02210F84 + arm_func_end MOD04_021FB530 arm_func_start MOD04_021FB654 MOD04_021FB654: ; 0x021FB654 @@ -39869,6 +40498,7 @@ _021FB6CC: .align 2, 0 _021FB6D4: .word UNK04_0220EDDC _021FB6D8: .word UNK04_0220EDD8 + arm_func_end MOD04_021FB654 arm_func_start MOD04_021FB6DC MOD04_021FB6DC: ; 0x021FB6DC @@ -39942,6 +40572,7 @@ _021FB7D0: .word UNK04_0220EDFC _021FB7D4: .word UNK04_0220EE08 _021FB7D8: .word UNK04_0220EE14 _021FB7DC: .word UNK04_0220EE20 + arm_func_end MOD04_021FB6DC arm_func_start MOD04_021FB7E0 MOD04_021FB7E0: ; 0x021FB7E0 @@ -39987,6 +40618,7 @@ _021FB874: .word UNK04_0220EE2C _021FB878: .word UNK04_0220EE34 _021FB87C: .word UNK04_0220EE38 _021FB880: .word UNK04_0220EE3C + arm_func_end MOD04_021FB7E0 arm_func_start MOD04_021FB884 MOD04_021FB884: ; 0x021FB884 @@ -40048,6 +40680,7 @@ _021FB958: .word UNK04_0220EE3C _021FB95C: .word UNK04_0220EE48 _021FB960: .word UNK04_0220EE50 _021FB964: .word UNK04_0220EE58 + arm_func_end MOD04_021FB884 arm_func_start MOD04_021FB968 MOD04_021FB968: ; 0x021FB968 @@ -40090,6 +40723,7 @@ MOD04_021FB968: ; 0x021FB968 _021FB9F4: .word UNK04_0220EE5C _021FB9F8: .word UNK04_0220EE38 _021FB9FC: .word UNK04_02210F84 + arm_func_end MOD04_021FB968 arm_func_start MOD04_021FBA00 MOD04_021FBA00: ; 0x021FBA00 @@ -40138,6 +40772,7 @@ _021FBAA0: .word UNK04_0220EE64 _021FBAA4: .word UNK04_0220EE38 _021FBAA8: .word UNK04_0220EE6C _021FBAAC: .word UNK04_02210F84 + arm_func_end MOD04_021FBA00 arm_func_start MOD04_021FBAB0 MOD04_021FBAB0: ; 0x021FBAB0 @@ -40180,6 +40815,7 @@ _021FBB30: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021FBB38: .word UNK04_02210F84 + arm_func_end MOD04_021FBAB0 arm_func_start MOD04_021FBB3C MOD04_021FBB3C: ; 0x021FBB3C @@ -40218,6 +40854,7 @@ _021FBBA4: _021FBBB4: mov r0, #0 bx lr + arm_func_end MOD04_021FBB3C arm_func_start MOD04_021FBBBC MOD04_021FBBBC: ; 0x021FBBBC @@ -40225,6 +40862,7 @@ MOD04_021FBBBC: ; 0x021FBBBC bx ip .align 2, 0 _021FBBC4: .word MOD04_021EFF2C + arm_func_end MOD04_021FBBBC arm_func_start MOD04_021FBBC8 MOD04_021FBBC8: ; 0x021FBBC8 @@ -40237,6 +40875,7 @@ MOD04_021FBBC8: ; 0x021FBBC8 ldmfd sp!, {pc} .align 2, 0 _021FBBE4: .word UNK04_0220EE58 + arm_func_end MOD04_021FBBC8 arm_func_start MOD04_021FBBE8 MOD04_021FBBE8: ; 0x021FBBE8 @@ -40297,6 +40936,7 @@ _021FBCA8: .word UNK04_0220BBD8 _021FBCAC: .word UNK04_02210F8C _021FBCB0: .word UNK04_0220EE74 _021FBCB4: .word UNK04_02211194 + arm_func_end MOD04_021FBBE8 arm_func_start MOD04_021FBCB8 MOD04_021FBCB8: ; 0x021FBCB8 @@ -40320,6 +40960,7 @@ _021FBCD0: ldmia sp!, {r4, pc} .align 2, 0 _021FBCFC: .word UNK04_0220EDD8 + arm_func_end MOD04_021FBCB8 arm_func_start MOD04_021FBD00 MOD04_021FBD00: ; 0x021FBD00 @@ -40416,6 +41057,7 @@ _021FBE4C: .word UNK04_02210F88 _021FBE50: .word UNK04_02210F80 _021FBE54: .word UNK04_02210F90 _021FBE58: .word UNK04_02210F7C + arm_func_end MOD04_021FBD00 arm_func_start MOD04_021FBE5C MOD04_021FBE5C: ; 0x021FBE5C @@ -40428,6 +41070,7 @@ MOD04_021FBE5C: ; 0x021FBE5C bx lr .align 2, 0 _021FBE78: .word UNK04_0220EDD4 + arm_func_end MOD04_021FBE5C arm_func_start MOD04_021FBE7C MOD04_021FBE7C: ; 0x021FBE7C @@ -40468,6 +41111,7 @@ _021FBEF8: .word UNK04_0220EDD4 _021FBEFC: .word UNK04_02210F80 _021FBF00: .word UNK04_02210F90 _021FBF04: .word UNK04_02210F7C + arm_func_end MOD04_021FBE7C arm_func_start MOD04_021FBF08 MOD04_021FBF08: ; 0x021FBF08 @@ -40488,6 +41132,7 @@ _021FBF30: blt _021FBF0C mov r0, #1 bx lr + arm_func_end MOD04_021FBF08 arm_func_start MOD04_021FBF44 MOD04_021FBF44: ; 0x021FBF44 @@ -40577,6 +41222,7 @@ _021FC06C: .word UNK04_0220EE78 _021FC070: .word 0x2C0B02C1 _021FC074: .word 0x0000005D _021FC078: .word 0x00004647 + arm_func_end MOD04_021FBF44 arm_func_start MOD04_021FC07C MOD04_021FC07C: ; 0x021FC07C @@ -40666,6 +41312,7 @@ _021FC1AC: .word UNK04_0220EE9C _021FC1B0: .word UNK04_0220EEA4 _021FC1B4: .word 0x2C0B02C1 _021FC1B8: .word 0x0000005D + arm_func_end MOD04_021FC07C arm_func_start MOD04_021FC1BC MOD04_021FC1BC: ; 0x021FC1BC @@ -40716,6 +41363,7 @@ _021FC250: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_021FC1BC arm_func_start MOD04_021FC268 MOD04_021FC268: ; 0x021FC268 @@ -40761,6 +41409,7 @@ _021FC2CC: _021FC2F8: .word UNK04_0220EEB0 _021FC2FC: .word UNK04_0220EEC8 _021FC300: .word UNK04_0220EED4 + arm_func_end MOD04_021FC268 arm_func_start MOD04_021FC304 MOD04_021FC304: ; 0x021FC304 @@ -40802,6 +41451,7 @@ _021FC360: .align 2, 0 _021FC388: .word UNK04_0220EEF8 _021FC38C: .word UNK04_0220EEC8 + arm_func_end MOD04_021FC304 arm_func_start MOD04_021FC390 MOD04_021FC390: ; 0x021FC390 @@ -40836,6 +41486,7 @@ _021FC3C8: .align 2, 0 _021FC3FC: .word UNK04_0220EF1C _021FC400: .word UNK04_0220EEC8 + arm_func_end MOD04_021FC390 arm_func_start MOD04_021FC404 MOD04_021FC404: ; 0x021FC404 @@ -40863,6 +41514,7 @@ _021FC438: .align 2, 0 _021FC454: .word UNK04_0220EF40 _021FC458: .word UNK04_0220EEC8 + arm_func_end MOD04_021FC404 arm_func_start MOD04_021FC45C MOD04_021FC45C: ; 0x021FC45C @@ -40870,6 +41522,7 @@ MOD04_021FC45C: ; 0x021FC45C ldr r0, [r0, #8] sub r0, r1, r0 bx lr + arm_func_end MOD04_021FC45C arm_func_start MOD04_021FC46C MOD04_021FC46C: ; 0x021FC46C @@ -40887,6 +41540,7 @@ MOD04_021FC46C: ; 0x021FC46C movne r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FC46C arm_func_start MOD04_021FC4A4 MOD04_021FC4A4: ; 0x021FC4A4 @@ -40957,6 +41611,7 @@ _021FC584: _021FC590: .word UNK04_0220EF5C _021FC594: .word UNK04_0220EF64 _021FC598: .word 0x00000197 + arm_func_end MOD04_021FC4A4 arm_func_start MOD04_021FC59C MOD04_021FC59C: ; 0x021FC59C @@ -41039,6 +41694,7 @@ _021FC6B0: .align 2, 0 _021FC6BC: .word UNK04_0220EF5C _021FC6C0: .word UNK04_0220EF64 + arm_func_end MOD04_021FC59C arm_func_start MOD04_021FC6C4 MOD04_021FC6C4: ; 0x021FC6C4 @@ -41115,6 +41771,7 @@ _021FC7BC: _021FC7C8: .word UNK04_0220EF74 _021FC7CC: .word UNK04_0220EF64 _021FC7D0: .word 0x0000012D + arm_func_end MOD04_021FC6C4 arm_func_start MOD04_021FC7D4 MOD04_021FC7D4: ; 0x021FC7D4 @@ -41191,6 +41848,7 @@ _021FC8CC: _021FC8D8: .word UNK04_0220EF74 _021FC8DC: .word UNK04_0220EF64 _021FC8E0: .word 0x00000101 + arm_func_end MOD04_021FC7D4 arm_func_start MOD04_021FC8E4 MOD04_021FC8E4: ; 0x021FC8E4 @@ -41250,6 +41908,7 @@ _021FC9A4: .align 2, 0 _021FC9B0: .word UNK04_0220EF74 _021FC9B4: .word UNK04_0220EF64 + arm_func_end MOD04_021FC8E4 arm_func_start MOD04_021FC9B8 MOD04_021FC9B8: ; 0x021FC9B8 @@ -41309,6 +41968,7 @@ _021FCA78: .align 2, 0 _021FCA84: .word UNK04_0220EF74 _021FCA88: .word UNK04_0220EF64 + arm_func_end MOD04_021FC9B8 arm_func_start MOD04_021FCA8C MOD04_021FCA8C: ; 0x021FCA8C @@ -41380,6 +42040,7 @@ _021FCB74: .align 2, 0 _021FCB80: .word UNK04_0220EF74 _021FCB84: .word UNK04_0220EF64 + arm_func_end MOD04_021FCA8C arm_func_start MOD04_021FCB88 MOD04_021FCB88: ; 0x021FCB88 @@ -41452,6 +42113,7 @@ _021FCC74: .align 2, 0 _021FCC80: .word UNK04_0220EF74 _021FCC84: .word UNK04_0220EF64 + arm_func_end MOD04_021FCB88 arm_func_start MOD04_021FCC88 MOD04_021FCC88: ; 0x021FCC88 @@ -41538,6 +42200,7 @@ _021FCDA0: .align 2, 0 _021FCDAC: .word UNK04_0220EF80 _021FCDB0: .word UNK04_0220EF64 + arm_func_end MOD04_021FCC88 arm_func_start MOD04_021FCDB4 MOD04_021FCDB4: ; 0x021FCDB4 @@ -41582,6 +42245,7 @@ _021FCE3C: .align 2, 0 _021FCE44: .word UNK04_0220EF5C _021FCE48: .word UNK04_0220EF64 + arm_func_end MOD04_021FCDB4 arm_func_start MOD04_021FCE4C MOD04_021FCE4C: ; 0x021FCE4C @@ -41625,6 +42289,7 @@ _021FCEC4: mov r0, r4 bl MOD04_021DD82C ldmia sp!, {r4, pc} + arm_func_end MOD04_021FCE4C arm_func_start MOD04_021FCED0 MOD04_021FCED0: ; 0x021FCED0 @@ -41654,6 +42319,7 @@ MOD04_021FCED0: ; 0x021FCED0 ldmia sp!, {lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_021FCED0 arm_func_start MOD04_021FCF38 MOD04_021FCF38: ; 0x021FCF38 @@ -41678,6 +42344,7 @@ _021FCF78: str r1, [r4, #0xc] bl MOD04_021FDA74 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FCF38 arm_func_start MOD04_021FCF88 MOD04_021FCF88: ; 0x021FCF88 @@ -41712,6 +42379,7 @@ MOD04_021FCF88: ; 0x021FCF88 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FCF88 arm_func_start MOD04_021FD004 MOD04_021FD004: ; 0x021FD004 @@ -41733,6 +42401,7 @@ _021FD034: ldmfd sp!, {pc} .align 2, 0 _021FD040: .word 0x00007530 + arm_func_end MOD04_021FD004 arm_func_start MOD04_021FD044 MOD04_021FD044: ; 0x021FD044 @@ -41756,6 +42425,7 @@ _021FD084: mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FD044 arm_func_start MOD04_021FD090 MOD04_021FD090: ; 0x021FD090 @@ -41792,6 +42462,7 @@ _021FD0FC: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021FD090 arm_func_start MOD04_021FD108 MOD04_021FD108: ; 0x021FD108 @@ -41840,6 +42511,7 @@ _021FD1A0: ldmia sp!, {r4, pc} .align 2, 0 _021FD1A8: .word 0x0000EA60 + arm_func_end MOD04_021FD108 arm_func_start MOD04_021FD1AC MOD04_021FD1AC: ; 0x021FD1AC @@ -41861,6 +42533,7 @@ MOD04_021FD1AC: ; 0x021FD1AC mov r0, #1 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FD1AC arm_func_start MOD04_021FD1F4 MOD04_021FD1F4: ; 0x021FD1F4 @@ -41886,6 +42559,7 @@ MOD04_021FD1F4: ; 0x021FD1F4 ldmia sp!, {r4, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_021FD1F4 arm_func_start MOD04_021FD24C MOD04_021FD24C: ; 0x021FD24C @@ -41916,6 +42590,7 @@ MOD04_021FD24C: ; 0x021FD24C mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FD24C arm_func_start MOD04_021FD2B8 MOD04_021FD2B8: ; 0x021FD2B8 @@ -41963,6 +42638,7 @@ _021FD31C: ldmia sp!, {r4, r5, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_021FD2B8 arm_func_start MOD04_021FD364 MOD04_021FD364: ; 0x021FD364 @@ -41978,6 +42654,7 @@ MOD04_021FD364: ; 0x021FD364 mov r0, #0 str r0, [r1, #0x10] ldmia sp!, {r4, pc} + arm_func_end MOD04_021FD364 arm_func_start MOD04_021FD394 MOD04_021FD394: ; 0x021FD394 @@ -41993,6 +42670,7 @@ MOD04_021FD394: ; 0x021FD394 mov r2, #1 str r2, [r1, #0x10] ldmia sp!, {r4, pc} + arm_func_end MOD04_021FD394 arm_func_start MOD04_021FD3C4 MOD04_021FD3C4: ; 0x021FD3C4 @@ -42011,6 +42689,7 @@ _021FD3E4: _021FD3EC: .word UNK04_0220EF98 _021FD3F0: .word UNK04_0220EFA4 _021FD3F4: .word 0x000001A3 + arm_func_end MOD04_021FD3C4 arm_func_start MOD04_021FD3F8 MOD04_021FD3F8: ; 0x021FD3F8 @@ -42031,16 +42710,19 @@ _021FD420: .align 2, 0 _021FD42C: .word UNK04_0220EF98 _021FD430: .word UNK04_0220EFA4 + arm_func_end MOD04_021FD3F8 arm_func_start MOD04_021FD434 MOD04_021FD434: ; 0x021FD434 str r1, [r0, #0x30] bx lr + arm_func_end MOD04_021FD434 arm_func_start MOD04_021FD43C MOD04_021FD43C: ; 0x021FD43C ldr r0, [r0] bx lr + arm_func_end MOD04_021FD43C arm_func_start MOD04_021FD444 MOD04_021FD444: ; 0x021FD444 @@ -42048,11 +42730,13 @@ MOD04_021FD444: ; 0x021FD444 ldr r0, [r0, #0x58] sub r0, r1, r0 bx lr + arm_func_end MOD04_021FD444 arm_func_start MOD04_021FD454 MOD04_021FD454: ; 0x021FD454 ldrh r0, [r0, #8] bx lr + arm_func_end MOD04_021FD454 arm_func_start MOD04_021FD45C MOD04_021FD45C: ; 0x021FD45C @@ -42064,6 +42748,7 @@ MOD04_021FD45C: ; 0x021FD45C .align 2, 0 _021FD470: .word MOD04_021EF2E4 _021FD474: .word MOD04_021FD478 + arm_func_end MOD04_021FD45C arm_func_start MOD04_021FD478 MOD04_021FD478: ; 0x021FD478 @@ -42072,6 +42757,7 @@ MOD04_021FD478: ; 0x021FD478 bx ip .align 2, 0 _021FD484: .word MOD04_021FD488 + arm_func_end MOD04_021FD478 arm_func_start MOD04_021FD488 MOD04_021FD488: ; 0x021FD488 @@ -42080,6 +42766,7 @@ MOD04_021FD488: ; 0x021FD488 bx ip .align 2, 0 _021FD494: .word MOD04_021FCF38 + arm_func_end MOD04_021FD488 arm_func_start MOD04_021FD498 MOD04_021FD498: ; 0x021FD498 @@ -42121,6 +42808,7 @@ _021FD508: ldmia sp!, {r4, r5, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_021FD498 arm_func_start MOD04_021FD52C MOD04_021FD52C: ; 0x021FD52C @@ -42227,6 +42915,7 @@ _021FD678: ldr r0, [r0, #0x18] add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_021FD52C arm_func_start MOD04_021FD6B0 MOD04_021FD6B0: ; 0x021FD6B0 @@ -42234,6 +42923,7 @@ MOD04_021FD6B0: ; 0x021FD6B0 bx ip .align 2, 0 _021FD6B8: .word MOD04_021FD1F4 + arm_func_end MOD04_021FD6B0 arm_func_start MOD04_021FD6BC MOD04_021FD6BC: ; 0x021FD6BC @@ -42241,6 +42931,7 @@ MOD04_021FD6BC: ; 0x021FD6BC bx ip .align 2, 0 _021FD6C4: .word MOD04_021FD24C + arm_func_end MOD04_021FD6BC arm_func_start MOD04_021FD6C8 MOD04_021FD6C8: ; 0x021FD6C8 @@ -42248,6 +42939,7 @@ MOD04_021FD6C8: ; 0x021FD6C8 bx ip .align 2, 0 _021FD6D0: .word MOD04_021FF9C4 + arm_func_end MOD04_021FD6C8 arm_func_start MOD04_021FD6D4 MOD04_021FD6D4: ; 0x021FD6D4 @@ -42263,6 +42955,7 @@ MOD04_021FD6D4: ; 0x021FD6D4 mov r0, r4 bl MOD04_021FF42C ldmia sp!, {r4, pc} + arm_func_end MOD04_021FD6D4 arm_func_start MOD04_021FD704 MOD04_021FD704: ; 0x021FD704 @@ -42272,6 +42965,7 @@ MOD04_021FD704: ; 0x021FD704 mov r0, r4 bl MOD04_021FF9CC ldmia sp!, {r4, pc} + arm_func_end MOD04_021FD704 arm_func_start MOD04_021FD71C MOD04_021FD71C: ; 0x021FD71C @@ -42282,6 +42976,7 @@ MOD04_021FD71C: ; 0x021FD71C bl MOD04_021FFA10 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FD71C arm_func_start MOD04_021FD738 MOD04_021FD738: ; 0x021FD738 @@ -42296,6 +42991,7 @@ _021FD754: bl MOD04_021FD94C add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FD738 arm_func_start MOD04_021FD760 MOD04_021FD760: ; 0x021FD760 @@ -42330,6 +43026,7 @@ MOD04_021FD760: ; 0x021FD760 mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FD760 arm_func_start MOD04_021FD7DC MOD04_021FD7DC: ; 0x021FD7DC @@ -42353,6 +43050,7 @@ MOD04_021FD7DC: ; 0x021FD7DC ldmia sp!, {r4, r5, pc} .align 2, 0 _021FD824: .word UNK04_0220EFB0 + arm_func_end MOD04_021FD7DC arm_func_start MOD04_021FD828 MOD04_021FD828: ; 0x021FD828 @@ -42364,6 +43062,7 @@ MOD04_021FD828: ; 0x021FD828 bx ip .align 2, 0 _021FD840: .word MOD04_021FD7DC + arm_func_end MOD04_021FD828 arm_func_start MOD04_021FD844 MOD04_021FD844: ; 0x021FD844 @@ -42373,6 +43072,7 @@ MOD04_021FD844: ; 0x021FD844 bx ip .align 2, 0 _021FD854: .word MOD04_021FD1AC + arm_func_end MOD04_021FD844 arm_func_start MOD04_021FD858 MOD04_021FD858: ; 0x021FD858 @@ -42413,6 +43113,7 @@ _021FD8BC: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021FD8E0: .word UNK04_0220EFB0 + arm_func_end MOD04_021FD858 arm_func_start MOD04_021FD8E4 MOD04_021FD8E4: ; 0x021FD8E4 @@ -42443,6 +43144,7 @@ MOD04_021FD8E4: ; 0x021FD8E4 ldmia sp!, {r4, pc} .align 2, 0 _021FD948: .word UNK04_0220EFB0 + arm_func_end MOD04_021FD8E4 arm_func_start MOD04_021FD94C MOD04_021FD94C: ; 0x021FD94C @@ -42500,6 +43202,7 @@ _021FD99C: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021FDA14: .word UNK04_0220EFB0 + arm_func_end MOD04_021FD94C arm_func_start MOD04_021FDA18 MOD04_021FDA18: ; 0x021FDA18 @@ -42526,6 +43229,7 @@ MOD04_021FDA18: ; 0x021FDA18 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FDA18 arm_func_start MOD04_021FDA74 MOD04_021FDA74: ; 0x021FDA74 @@ -42552,6 +43256,7 @@ MOD04_021FDA74: ; 0x021FDA74 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FDA74 arm_func_start MOD04_021FDAD0 MOD04_021FDAD0: ; 0x021FDAD0 @@ -42584,6 +43289,7 @@ MOD04_021FDAD0: ; 0x021FDAD0 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FDAD0 arm_func_start MOD04_021FDB44 MOD04_021FDB44: ; 0x021FDB44 @@ -42610,6 +43316,7 @@ MOD04_021FDB44: ; 0x021FDB44 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FDB44 arm_func_start MOD04_021FDBA0 MOD04_021FDBA0: ; 0x021FDBA0 @@ -42647,6 +43354,7 @@ MOD04_021FDBA0: ; 0x021FDBA0 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021FDBA0 arm_func_start MOD04_021FDC28 MOD04_021FDC28: ; 0x021FDC28 @@ -42685,6 +43393,7 @@ MOD04_021FDC28: ; 0x021FDC28 strne r1, [r6, #0x8c] add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FDC28 arm_func_start MOD04_021FDCB4 MOD04_021FDCB4: ; 0x021FDCB4 @@ -42716,6 +43425,7 @@ MOD04_021FDCB4: ; 0x021FDCB4 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FDCB4 arm_func_start MOD04_021FDD24 MOD04_021FDD24: ; 0x021FDD24 @@ -42748,6 +43458,7 @@ MOD04_021FDD24: ; 0x021FDD24 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FDD24 arm_func_start MOD04_021FDD98 MOD04_021FDD98: ; 0x021FDD98 @@ -42785,6 +43496,7 @@ _021FDDCC: _021FDE0C: .word UNK04_0220EFBC _021FDE10: .word UNK04_0220EFC4 _021FDE14: .word 0x00000475 + arm_func_end MOD04_021FDD98 arm_func_start MOD04_021FDE18 MOD04_021FDE18: ; 0x021FDE18 @@ -42844,6 +43556,7 @@ _021FDE98: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021FDEE8: .word UNK04_0220EFB0 + arm_func_end MOD04_021FDE18 arm_func_start MOD04_021FDEEC MOD04_021FDEEC: ; 0x021FDEEC @@ -42876,6 +43589,7 @@ MOD04_021FDEEC: ; 0x021FDEEC movne r0, #0 add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FDEEC arm_func_start MOD04_021FDF60 MOD04_021FDF60: ; 0x021FDF60 @@ -42970,6 +43684,7 @@ _021FE09C: .align 2, 0 _021FE0AC: .word 0x000005F4 _021FE0B0: .word 0x000005DC + arm_func_end MOD04_021FDF60 arm_func_start MOD04_021FE0B4 MOD04_021FE0B4: ; 0x021FE0B4 @@ -43042,6 +43757,7 @@ _021FE1A8: mov r0, #1 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021FE0B4 arm_func_start MOD04_021FE1B4 MOD04_021FE1B4: ; 0x021FE1B4 @@ -43238,6 +43954,7 @@ _021FE44C: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _021FE470: .word UNK04_0220EFB0 + arm_func_end MOD04_021FE1B4 arm_func_start MOD04_021FE474 MOD04_021FE474: ; 0x021FE474 @@ -43300,6 +44017,7 @@ _021FE540: mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FE474 arm_func_start MOD04_021FE54C MOD04_021FE54C: ; 0x021FE54C @@ -43320,6 +44038,7 @@ MOD04_021FE54C: ; 0x021FE54C movne r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FE54C arm_func_start MOD04_021FE590 MOD04_021FE590: ; 0x021FE590 @@ -43367,6 +44086,7 @@ MOD04_021FE590: ; 0x021FE590 ldmia sp!, {r4, r5, pc} .align 2, 0 _021FE638: .word UNK04_0220EFB4 + arm_func_end MOD04_021FE590 arm_func_start MOD04_021FE63C MOD04_021FE63C: ; 0x021FE63C @@ -43374,6 +44094,7 @@ MOD04_021FE63C: ; 0x021FE63C bx ip .align 2, 0 _021FE644: .word MOD04_021FD844 + arm_func_end MOD04_021FE63C arm_func_start MOD04_021FE648 MOD04_021FE648: ; 0x021FE648 @@ -43441,6 +44162,7 @@ _021FE728: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_021FE648 arm_func_start MOD04_021FE734 MOD04_021FE734: ; 0x021FE734 @@ -43464,6 +44186,7 @@ _021FE758: movne r0, #1 moveq r0, #0 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FE734 arm_func_start MOD04_021FE780 MOD04_021FE780: ; 0x021FE780 @@ -43554,6 +44277,7 @@ _021FE8C0: mov r0, #1 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_021FE780 arm_func_start MOD04_021FE8CC MOD04_021FE8CC: ; 0x021FE8CC @@ -43567,6 +44291,7 @@ MOD04_021FE8CC: ; 0x021FE8CC bl MOD04_021F025C str r0, [r4, #0x94] ldmia sp!, {r4, pc} + arm_func_end MOD04_021FE8CC arm_func_start MOD04_021FE8F4 MOD04_021FE8F4: ; 0x021FE8F4 @@ -43607,6 +44332,7 @@ _021FE968: _021FE970: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FE8F4 arm_func_start MOD04_021FE978 MOD04_021FE978: ; 0x021FE978 @@ -43650,6 +44376,7 @@ _021FE9F4: bl MOD04_021FC268 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_021FE978 arm_func_start MOD04_021FEA0C MOD04_021FEA0C: ; 0x021FEA0C @@ -43766,6 +44493,7 @@ _021FEBA4: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _021FEBB8: .word MOD04_021FEBBC + arm_func_end MOD04_021FEA0C arm_func_start MOD04_021FEBBC MOD04_021FEBBC: ; 0x021FEBBC @@ -43775,6 +44503,7 @@ MOD04_021FEBBC: ; 0x021FEBBC bx ip .align 2, 0 _021FEBCC: .word MOD04_021FF3AC + arm_func_end MOD04_021FEBBC arm_func_start MOD04_021FEBD0 MOD04_021FEBD0: ; 0x021FEBD0 @@ -43858,6 +44587,7 @@ _021FECE8: mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FEBD0 arm_func_start MOD04_021FECF4 MOD04_021FECF4: ; 0x021FECF4 @@ -43878,6 +44608,7 @@ MOD04_021FECF4: ; 0x021FECF4 moveq r0, #0 movne r0, #1 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FECF4 arm_func_start MOD04_021FED38 MOD04_021FED38: ; 0x021FED38 @@ -43909,6 +44640,7 @@ _021FED68: movne r0, #1 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FED38 arm_func_start MOD04_021FEDA4 MOD04_021FEDA4: ; 0x021FEDA4 @@ -43935,6 +44667,7 @@ _021FEDD0: moveq r0, #0 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FEDA4 arm_func_start MOD04_021FEDFC MOD04_021FEDFC: ; 0x021FEDFC @@ -44011,6 +44744,7 @@ _021FEEC0: moveq r0, #0 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FEDFC arm_func_start MOD04_021FEF10 MOD04_021FEF10: ; 0x021FEF10 @@ -44073,6 +44807,7 @@ _021FEFDC: str r0, [r5, #0xc] add sp, sp, #0x24 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FEF10 arm_func_start MOD04_021FEFEC MOD04_021FEFEC: ; 0x021FEFEC @@ -44116,6 +44851,7 @@ _021FF03C: movne r0, #1 add sp, sp, #0x40 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FEFEC arm_func_start MOD04_021FF084 MOD04_021FF084: ; 0x021FF084 @@ -44166,6 +44902,7 @@ _021FF128: mov r0, #1 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FF084 arm_func_start MOD04_021FF134 MOD04_021FF134: ; 0x021FF134 @@ -44208,6 +44945,7 @@ _021FF1A0: moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FF134 arm_func_start MOD04_021FF1C8 MOD04_021FF1C8: ; 0x021FF1C8 @@ -44285,6 +45023,7 @@ _021FF2BC: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021FF1C8 arm_func_start MOD04_021FF2D8 MOD04_021FF2D8: ; 0x021FF2D8 @@ -44299,6 +45038,7 @@ MOD04_021FF2D8: ; 0x021FF2D8 mov r2, #4 bl MOD04_021FF318 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FF2D8 arm_func_start MOD04_021FF304 MOD04_021FF304: ; 0x021FF304 @@ -44308,6 +45048,7 @@ MOD04_021FF304: ; 0x021FF304 bx ip .align 2, 0 _021FF314: .word MOD04_021FF318 + arm_func_end MOD04_021FF304 arm_func_start MOD04_021FF318 MOD04_021FF318: ; 0x021FF318 @@ -44351,6 +45092,7 @@ _021FF380: _021FF3A4: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_021FF318 arm_func_start MOD04_021FF3AC MOD04_021FF3AC: ; 0x021FF3AC @@ -44358,6 +45100,7 @@ MOD04_021FF3AC: ; 0x021FF3AC mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 bx lr + arm_func_end MOD04_021FF3AC arm_func_start MOD04_021FF3BC MOD04_021FF3BC: ; 0x021FF3BC @@ -44366,6 +45109,7 @@ MOD04_021FF3BC: ; 0x021FF3BC add r1, r1, #1 strb r2, [r0, r1] bx lr + arm_func_end MOD04_021FF3BC arm_func_start MOD04_021FF3D0 MOD04_021FF3D0: ; 0x021FF3D0 @@ -44377,6 +45121,7 @@ MOD04_021FF3D0: ; 0x021FF3D0 mov r0, r0, lsl #0x10 orr r0, r1, r0, lsr #16 bx lr + arm_func_end MOD04_021FF3D0 arm_func_start MOD04_021FF3F0 MOD04_021FF3F0: ; 0x021FF3F0 @@ -44395,6 +45140,7 @@ MOD04_021FF3F0: ; 0x021FF3F0 mov r0, r4 bl MOD04_021FF9CC ldmia sp!, {r4, pc} + arm_func_end MOD04_021FF3F0 arm_func_start MOD04_021FF42C MOD04_021FF42C: ; 0x021FF42C @@ -44416,6 +45162,7 @@ _021FF44C: bpl _021FF44C add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_021FF42C arm_func_start MOD04_021FF470 MOD04_021FF470: ; 0x021FF470 @@ -44435,6 +45182,7 @@ MOD04_021FF470: ; 0x021FF470 ldmia sp!, {r4, pc} .align 2, 0 _021FF4A8: .word MOD04_021FF4AC + arm_func_end MOD04_021FF470 arm_func_start MOD04_021FF4AC MOD04_021FF4AC: ; 0x021FF4AC @@ -44464,6 +45212,7 @@ _021FF4D8: _021FF504: mov r0, #1 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FF4AC arm_func_start MOD04_021FF50C MOD04_021FF50C: ; 0x021FF50C @@ -44580,6 +45329,7 @@ _021FF6A8: ldmia sp!, {r4, r5, r6, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_021FF50C arm_func_start MOD04_021FF6BC MOD04_021FF6BC: ; 0x021FF6BC @@ -44639,6 +45389,7 @@ _021FF774: ldmia sp!, {r4, r5, r6, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_021FF6BC arm_func_start MOD04_021FF790 MOD04_021FF790: ; 0x021FF790 @@ -44785,6 +45536,7 @@ _021FF9A8: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021FF790 arm_func_start MOD04_021FF9B4 MOD04_021FF9B4: ; 0x021FF9B4 @@ -44793,11 +45545,13 @@ MOD04_021FF9B4: ; 0x021FF9B4 bx ip .align 2, 0 _021FF9C0: .word MOD04_021DD860 + arm_func_end MOD04_021FF9B4 arm_func_start MOD04_021FF9C4 MOD04_021FF9C4: ; 0x021FF9C4 str r1, [r0, #0x20] bx lr + arm_func_end MOD04_021FF9C4 arm_func_start MOD04_021FF9CC MOD04_021FF9CC: ; 0x021FF9CC @@ -44818,6 +45572,7 @@ MOD04_021FF9CC: ; 0x021FF9CC bl MOD04_021DD82C bl MOD04_021F0248 ldmia sp!, {r4, pc} + arm_func_end MOD04_021FF9CC arm_func_start MOD04_021FFA10 MOD04_021FFA10: ; 0x021FFA10 @@ -44965,6 +45720,7 @@ _021FFBE4: _021FFC30: .word MOD04_021FFC84 _021FFC34: .word MOD04_021FFCB4 _021FFC38: .word MOD04_021FFC74 + arm_func_end MOD04_021FFA10 arm_func_start MOD04_021FFC3C MOD04_021FFC3C: ; 0x021FFC3C @@ -44982,6 +45738,7 @@ MOD04_021FFC3C: ; 0x021FFC3C moveq r0, #0 add sp, sp, #0xa4 ldmfd sp!, {pc} + arm_func_end MOD04_021FFC3C arm_func_start MOD04_021FFC74 MOD04_021FFC74: ; 0x021FFC74 @@ -44990,6 +45747,7 @@ MOD04_021FFC74: ; 0x021FFC74 bx ip .align 2, 0 _021FFC80: .word MOD04_021FCE4C + arm_func_end MOD04_021FFC74 arm_func_start MOD04_021FFC84 MOD04_021FFC84: ; 0x021FFC84 @@ -45005,6 +45763,7 @@ MOD04_021FFC84: ; 0x021FFC84 moveq r0, r0, lsl #0x10 moveq r0, r0, asr #0x10 bx lr + arm_func_end MOD04_021FFC84 arm_func_start MOD04_021FFCB4 MOD04_021FFCB4: ; 0x021FFCB4 @@ -45018,6 +45777,7 @@ MOD04_021FFCB4: ; 0x021FFCB4 mov r0, r1 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_021FFCB4 arm_func_start MOD04_021FFCDC MOD04_021FFCDC: ; 0x021FFCDC @@ -45041,6 +45801,7 @@ MOD04_021FFCDC: ; 0x021FFCDC ldmia sp!, {r4, pc} .align 2, 0 _021FFD24: .word UNK04_0220EFD4 + arm_func_end MOD04_021FFCDC arm_func_start MOD04_021FFD28 MOD04_021FFD28: ; 0x021FFD28 @@ -45156,6 +45917,7 @@ _021FFEA0: .word UNK04_0220EFD8 _021FFEA4: .word UNK04_0220EFF8 _021FFEA8: .word 0x0210430C _021FFEAC: .word 0x0000FFFF + arm_func_end MOD04_021FFD28 arm_func_start MOD04_021FFEB0 MOD04_021FFEB0: ; 0x021FFEB0 @@ -45214,6 +45976,7 @@ _021FFF68: .word UNK04_02211398 _021FFF6C: .word UNK04_0220F008 _021FFF70: .word UNK04_0220F010 _021FFF74: .word UNK04_0220F014 + arm_func_end MOD04_021FFEB0 arm_func_start MOD04_021FFF78 MOD04_021FFF78: ; 0x021FFF78 @@ -45309,6 +46072,7 @@ _02200060: bl MOD04_022000D4 add sp, sp, #0x2c ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_021FFF78 arm_func_start MOD04_022000D4 MOD04_022000D4: ; 0x022000D4 @@ -45384,6 +46148,7 @@ _0220019C: ldmia sp!, {r4, pc} .align 2, 0 _022001E0: .word 0x00002710 + arm_func_end MOD04_022000D4 arm_func_start MOD04_022001E4 MOD04_022001E4: ; 0x022001E4 @@ -45449,6 +46214,7 @@ _022002AC: ldmia sp!, {r4, r5, pc} .align 2, 0 _022002C8: .word 0x00001388 + arm_func_end MOD04_022001E4 arm_func_start MOD04_022002CC MOD04_022002CC: ; 0x022002CC @@ -45507,6 +46273,7 @@ _02200348: bl MOD04_022008D8 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_022002CC arm_func_start MOD04_0220039C MOD04_0220039C: ; 0x0220039C @@ -45562,6 +46329,7 @@ MOD04_0220039C: ; 0x0220039C ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02200464: .word UNK04_0220F018 + arm_func_end MOD04_0220039C arm_func_start MOD04_02200468 MOD04_02200468: ; 0x02200468 @@ -45588,6 +46356,7 @@ _02200498: ldmia sp!, {r4, r5, pc} .align 2, 0 _022004B8: .word UNK04_022113D4 + arm_func_end MOD04_02200468 arm_func_start MOD04_022004BC MOD04_022004BC: ; 0x022004BC @@ -45727,6 +46496,7 @@ _02200664: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _022006B0: .word UNK04_022113D8 + arm_func_end MOD04_022004BC arm_func_start MOD04_022006B4 MOD04_022006B4: ; 0x022006B4 @@ -45745,6 +46515,7 @@ _022006D8: mov r0, #4 str r0, [r4, #0x10] ldmia sp!, {r4, pc} + arm_func_end MOD04_022006B4 arm_func_start MOD04_022006EC MOD04_022006EC: ; 0x022006EC @@ -45801,6 +46572,7 @@ _022007A4: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _022007B4: .word UNK04_02210E5C + arm_func_end MOD04_022006EC arm_func_start MOD04_022007B8 MOD04_022007B8: ; 0x022007B8 @@ -45851,6 +46623,7 @@ _02200850: .word UNK04_0220F020 _02200854: .word UNK04_022113CC _02200858: .word UNK04_022113C4 _0220085C: .word UNK04_0220F03C + arm_func_end MOD04_022007B8 arm_func_start MOD04_02200860 MOD04_02200860: ; 0x02200860 @@ -45872,6 +46645,7 @@ _0220088C: .align 2, 0 _02200898: .word UNK04_0220F058 _0220089C: .word UNK04_02210EA0 + arm_func_end MOD04_02200860 arm_func_start MOD04_022008A0 MOD04_022008A0: ; 0x022008A0 @@ -45889,6 +46663,7 @@ MOD04_022008A0: ; 0x022008A0 ldrne r0, [r0] ldrne r0, [r0] ldmia sp!, {r4, pc} + arm_func_end MOD04_022008A0 arm_func_start MOD04_022008D8 MOD04_022008D8: ; 0x022008D8 @@ -45965,6 +46740,7 @@ MOD04_022008D8: ; 0x022008D8 ldmia sp!, {r4, r5, pc} .align 2, 0 _022009F4: .word UNK04_0220F018 + arm_func_end MOD04_022008D8 arm_func_start MOD04_022009F8 MOD04_022009F8: ; 0x022009F8 @@ -46119,6 +46895,7 @@ _02200C34: .word UNK04_02210EA0 _02200C38: .word UNK04_022113D0 _02200C3C: .word 0x00006CFD _02200C40: .word UNK04_022113CC + arm_func_end MOD04_022009F8 arm_func_start MOD04_02200C44 MOD04_02200C44: ; 0x02200C44 @@ -46135,6 +46912,7 @@ MOD04_02200C44: ; 0x02200C44 ldrneh r0, [sp, #2] add sp, sp, #0xc ldmfd sp!, {pc} + arm_func_end MOD04_02200C44 arm_func_start MOD04_02200C78 MOD04_02200C78: ; 0x02200C78 @@ -46171,6 +46949,7 @@ _02200CDC: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _02200CE8: .word 0x0100007F + arm_func_end MOD04_02200C78 arm_func_start MOD04_02200CEC MOD04_02200CEC: ; 0x02200CEC @@ -46195,6 +46974,7 @@ MOD04_02200CEC: ; 0x02200CEC bl MOD04_021EFBD4 add sp, sp, #0x14 ldmfd sp!, {pc} + arm_func_end MOD04_02200CEC arm_func_start MOD04_02200D40 MOD04_02200D40: ; 0x02200D40 @@ -46210,6 +46990,7 @@ MOD04_02200D40: ; 0x02200D40 ldmfd sp!, {pc} .align 2, 0 _02200D68: .word UNK04_0220F018 + arm_func_end MOD04_02200D40 arm_func_start MOD04_02200D6C MOD04_02200D6C: ; 0x02200D6C @@ -46228,6 +47009,7 @@ MOD04_02200D6C: ; 0x02200D6C ldmfd sp!, {pc} .align 2, 0 _02200DA0: .word UNK04_022113D4 + arm_func_end MOD04_02200D6C arm_func_start MOD04_02200DA4 MOD04_02200DA4: ; 0x02200DA4 @@ -46260,6 +47042,7 @@ _02200DF0: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02200E08: .word UNK04_022113D4 + arm_func_end MOD04_02200DA4 arm_func_start MOD04_02200E0C MOD04_02200E0C: ; 0x02200E0C @@ -46303,6 +47086,7 @@ _02200E68: .align 2, 0 _02200E9C: .word UNK04_022113D4 _02200EA0: .word MOD04_02200EA4 + arm_func_end MOD04_02200E0C arm_func_start MOD04_02200EA4 MOD04_02200EA4: ; 0x02200EA4 @@ -46319,6 +47103,7 @@ _02200EC0: mov r0, #4 str r0, [r4, #0x10] ldmia sp!, {r4, pc} + arm_func_end MOD04_02200EA4 arm_func_start MOD04_02200ED4 MOD04_02200ED4: ; 0x02200ED4 @@ -46351,6 +47136,7 @@ _02200F30: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02200F38: .word UNK04_022113D4 + arm_func_end MOD04_02200ED4 arm_func_start MOD04_02200F3C MOD04_02200F3C: ; 0x02200F3C @@ -46494,6 +47280,7 @@ _02201140: .word UNK04_0220F19C _02201144: .word UNK04_0220F1AC _02201148: .word UNK04_0220F1B8 _0220114C: .word UNK04_0220F1C4 + arm_func_end MOD04_02200F3C arm_func_start MOD04_02201150 MOD04_02201150: ; 0x02201150 @@ -46519,6 +47306,7 @@ MOD04_02201150: ; 0x02201150 str r0, [r4, #0xb0] add sp, sp, #0x810 ldmia sp!, {r4, pc} + arm_func_end MOD04_02201150 arm_func_start MOD04_022011A8 MOD04_022011A8: ; 0x022011A8 @@ -46753,6 +47541,7 @@ _022014D8: .align 2, 0 _02201504: .word 0x00000814 _02201508: .word UNK04_0220F060 + arm_func_end MOD04_022011A8 arm_func_start MOD04_0220150C MOD04_0220150C: ; 0x0220150C @@ -46786,6 +47575,7 @@ _02201514: .align 2, 0 _02201574: .word 0x66666667 _02201578: .word 0x0000000A + arm_func_end MOD04_0220150C arm_func_start MOD04_0220157C MOD04_0220157C: ; 0x0220157C @@ -46869,6 +47659,7 @@ _0220167C: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _022016A4: .word UNK04_0220BCD8 + arm_func_end MOD04_0220157C arm_func_start MOD04_022016A8 MOD04_022016A8: ; 0x022016A8 @@ -46900,6 +47691,7 @@ MOD04_022016A8: ; 0x022016A8 ldmia sp!, {r4, r5, pc} .align 2, 0 _02201710: .word UNK04_0220F1D0 + arm_func_end MOD04_022016A8 arm_func_start MOD04_02201714 MOD04_02201714: ; 0x02201714 @@ -47032,6 +47824,7 @@ _022018E0: .word UNK04_0220F3A8 _022018E4: .word UNK04_0220F1E4 _022018E8: .word UNK04_0220F1EC _022018EC: .word UNK04_0220F1F0 + arm_func_end MOD04_02201714 arm_func_start MOD04_022018F0 MOD04_022018F0: ; 0x022018F0 @@ -47087,6 +47880,7 @@ _02201984: bl MOD04_022019B4 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_022018F0 arm_func_start MOD04_022019B4 MOD04_022019B4: ; 0x022019B4 @@ -47114,6 +47908,7 @@ MOD04_022019B4: ; 0x022019B4 bl MOD04_02201A14 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_022019B4 arm_func_start MOD04_02201A14 MOD04_02201A14: ; 0x02201A14 @@ -47282,6 +48077,7 @@ _02201C4C: _02201C64: .word UNK04_0220F1E4 _02201C68: .word UNK04_0220F3A8 _02201C6C: .word UNK04_0220F1EC + arm_func_end MOD04_02201A14 arm_func_start MOD04_02201C70 MOD04_02201C70: ; 0x02201C70 @@ -47334,6 +48130,7 @@ _02201D04: ldmia sp!, {r4, pc} .align 2, 0 _02201D28: .word UNK04_0220F1F8 + arm_func_end MOD04_02201C70 arm_func_start MOD04_02201D2C MOD04_02201D2C: ; 0x02201D2C @@ -47377,6 +48174,7 @@ MOD04_02201D2C: ; 0x02201D2C str r0, [r4, #0x800] add sp, sp, #0x48 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_02201D2C arm_func_start MOD04_02201DCC MOD04_02201DCC: ; 0x02201DCC @@ -47396,6 +48194,7 @@ MOD04_02201DCC: ; 0x02201DCC str r1, [r0, #0x800] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_02201DCC arm_func_start MOD04_02201E0C MOD04_02201E0C: ; 0x02201E0C @@ -47483,6 +48282,7 @@ _02201EC8: blt _02201EC8 add sp, sp, #0x104 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02201E0C arm_func_start MOD04_02201F50 MOD04_02201F50: ; 0x02201F50 @@ -47542,6 +48342,7 @@ _02202010: strb r0, [r8] add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02201F50 arm_func_start MOD04_02202020 MOD04_02202020: ; 0x02202020 @@ -47564,6 +48365,7 @@ MOD04_02202020: ; 0x02202020 moveq r0, #0x2f movne r0, #0 bx lr + arm_func_end MOD04_02202020 arm_func_start MOD04_0220206C MOD04_0220206C: ; 0x0220206C @@ -47572,6 +48374,7 @@ MOD04_0220206C: ; 0x0220206C strb r2, [r0] strb r3, [r1] bx lr + arm_func_end MOD04_0220206C arm_func_start MOD04_02202080 MOD04_02202080: ; 0x02202080 @@ -47623,6 +48426,7 @@ _0220211C: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _02202130: .word UNK04_0220F204 + arm_func_end MOD04_02202080 arm_func_start MOD04_02202134 MOD04_02202134: ; 0x02202134 @@ -47663,6 +48467,7 @@ _0220215C: .align 2, 0 _022021B8: .word UNK04_022115D8 _022021BC: .word UNK04_022115DC + arm_func_end MOD04_02202134 arm_func_start MOD04_022021C0 MOD04_022021C0: ; 0x022021C0 @@ -47690,6 +48495,7 @@ MOD04_022021C0: ; 0x022021C0 sub r0, r0, #1 strb r1, [r4, r0] ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_022021C0 arm_func_start MOD04_02202220 MOD04_02202220: ; 0x02202220 @@ -47707,6 +48513,7 @@ MOD04_02202220: ; 0x02202220 ldmia sp!, {r4, pc} .align 2, 0 _02202250: .word UNK04_0220F214 + arm_func_end MOD04_02202220 arm_func_start MOD04_02202254 MOD04_02202254: ; 0x02202254 @@ -47721,6 +48528,7 @@ MOD04_02202254: ; 0x02202254 str r2, [r0, #0x100] strb r1, [r0, r3] bx lr + arm_func_end MOD04_02202254 arm_func_start MOD04_02202280 MOD04_02202280: ; 0x02202280 @@ -47762,6 +48570,7 @@ _022022E8: .align 2, 0 _02202300: .word UNK04_0220F060 _02202304: .word UNK04_0220F064 + arm_func_end MOD04_02202280 arm_func_start MOD04_02202308 MOD04_02202308: ; 0x02202308 @@ -47789,6 +48598,7 @@ MOD04_02202308: ; 0x02202308 .align 2, 0 _0220235C: .word UNK04_0220F060 _02202360: .word 0x00002710 + arm_func_end MOD04_02202308 arm_func_start MOD04_02202364 MOD04_02202364: ; 0x02202364 @@ -47872,6 +48682,7 @@ _0220247C: .word 0x00002710 _02202480: .word UNK04_0220F218 _02202484: .word 0x0000EA60 _02202488: .word 0x00004E20 + arm_func_end MOD04_02202364 arm_func_start MOD04_0220248C MOD04_0220248C: ; 0x0220248C @@ -47920,6 +48731,7 @@ _02202518: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _02202530: .word UNK04_02211630 + arm_func_end MOD04_0220248C arm_func_start MOD04_02202534 MOD04_02202534: ; 0x02202534 @@ -47938,6 +48750,7 @@ _02202558: ldmia sp!, {r4, pc} .align 2, 0 _02202564: .word UNK04_0220F060 + arm_func_end MOD04_02202534 arm_func_start MOD04_02202568 MOD04_02202568: ; 0x02202568 @@ -47948,6 +48761,7 @@ MOD04_02202568: ; 0x02202568 bx lr .align 2, 0 _0220257C: .word UNK04_0220F060 + arm_func_end MOD04_02202568 arm_func_start MOD04_02202580 MOD04_02202580: ; 0x02202580 @@ -47958,6 +48772,7 @@ MOD04_02202580: ; 0x02202580 bx lr .align 2, 0 _02202594: .word UNK04_0220F060 + arm_func_end MOD04_02202580 arm_func_start MOD04_02202598 MOD04_02202598: ; 0x02202598 @@ -47968,6 +48783,7 @@ MOD04_02202598: ; 0x02202598 bx lr .align 2, 0 _022025AC: .word UNK04_0220F060 + arm_func_end MOD04_02202598 arm_func_start MOD04_022025B0 MOD04_022025B0: ; 0x022025B0 @@ -48094,6 +48910,7 @@ _0220276C: .word UNK04_022115D8 _02202770: .word UNK04_022115F0 _02202774: .word UNK04_0220F250 _02202778: .word 0x00006CFC + arm_func_end MOD04_022025B0 arm_func_start MOD04_0220277C MOD04_0220277C: ; 0x0220277C @@ -48106,6 +48923,7 @@ MOD04_0220277C: ; 0x0220277C bx lr .align 2, 0 _02202798: .word UNK04_0220F3A8 + arm_func_end MOD04_0220277C arm_func_start MOD04_0220279C MOD04_0220279C: ; 0x0220279C @@ -48128,6 +48946,7 @@ _022027C0: blt _022027C0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_0220279C arm_func_start MOD04_022027E4 MOD04_022027E4: ; 0x022027E4 @@ -48182,6 +49001,7 @@ MOD04_022027E4: ; 0x022027E4 strb r1, [r0, #0x104] ldrb r0, [r0, #0x103] ldmia sp!, {r4, pc} + arm_func_end MOD04_022027E4 arm_func_start MOD04_022028B0 MOD04_022028B0: ; 0x022028B0 @@ -48238,6 +49058,7 @@ _02202904: str r0, [sp, #0xc] add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_022028B0 arm_func_start MOD04_02202978 MOD04_02202978: ; 0x02202978 @@ -48260,6 +49081,7 @@ _022029A8: sub r1, r1, #1 blt _022029A8 bx lr + arm_func_end MOD04_02202978 arm_func_start MOD04_022029C0 MOD04_022029C0: ; 0x022029C0 @@ -48315,6 +49137,7 @@ _02202A6C: and r0, r0, #0xff add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_022029C0 arm_func_start MOD04_02202A80 MOD04_02202A80: ; 0x02202A80 @@ -48332,6 +49155,7 @@ MOD04_02202A80: ; 0x02202A80 bl MOD04_022032AC add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02202A80 arm_func_start MOD04_02202AB8 MOD04_02202AB8: ; 0x02202AB8 @@ -48342,6 +49166,7 @@ MOD04_02202AB8: ; 0x02202AB8 addlt r0, r0, r3 strltb r1, [r0, #0x2c] bx lr + arm_func_end MOD04_02202AB8 arm_func_start MOD04_02202AD4 MOD04_02202AD4: ; 0x02202AD4 @@ -48370,6 +49195,7 @@ _02202B0C: mov r2, #0 blx ip ldmia sp!, {r4, pc} + arm_func_end MOD04_02202AD4 arm_func_start MOD04_02202B34 MOD04_02202B34: ; 0x02202B34 @@ -48395,6 +49221,7 @@ _02202B5C: bgt _02202B48 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02202B34 arm_func_start MOD04_02202B84 MOD04_02202B84: ; 0x02202B84 @@ -48436,6 +49263,7 @@ _02202BAC: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02202C10: .word 0x000009C4 + arm_func_end MOD04_02202B84 arm_func_start MOD04_02202C14 MOD04_02202C14: ; 0x02202C14 @@ -48554,11 +49382,13 @@ _02202D94: .align 2, 0 _02202DB0: .word 0x00000814 _02202DB4: .word 0x000007FF + arm_func_end MOD04_02202C14 arm_func_start MOD04_02202DB8 MOD04_02202DB8: ; 0x02202DB8 mov r0, #1 bx lr + arm_func_end MOD04_02202DB8 arm_func_start MOD04_02202DC0 MOD04_02202DC0: ; 0x02202DC0 @@ -48605,6 +49435,7 @@ MOD04_02202DC0: ; 0x02202DC0 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _02202E64: .word UNK04_0220F7A0 + arm_func_end MOD04_02202DC0 arm_func_start MOD04_02202E68 MOD04_02202E68: ; 0x02202E68 @@ -48677,6 +49508,7 @@ _02202F20: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _02202F64: .word UNK04_0220F3A8 + arm_func_end MOD04_02202E68 arm_func_start MOD04_02202F68 MOD04_02202F68: ; 0x02202F68 @@ -48719,6 +49551,7 @@ _02202FE8: bl MOD04_02203378 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_02202F68 arm_func_start MOD04_02202FF8 MOD04_02202FF8: ; 0x02202FF8 @@ -48733,6 +49566,7 @@ MOD04_02202FF8: ; 0x02202FF8 add r0, r4, #8 bl MOD04_02203294 ldmia sp!, {r4, pc} + arm_func_end MOD04_02202FF8 arm_func_start MOD04_02203024 MOD04_02203024: ; 0x02203024 @@ -48743,11 +49577,13 @@ MOD04_02203024: ; 0x02203024 add r0, r4, #8 bl MOD04_02203294 ldmia sp!, {r4, pc} + arm_func_end MOD04_02203024 arm_func_start MOD04_02203040 MOD04_02203040: ; 0x02203040 str r1, [r0, #0x28] bx lr + arm_func_end MOD04_02203040 arm_func_start MOD04_02203048 MOD04_02203048: ; 0x02203048 @@ -48783,6 +49619,7 @@ _02203070: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _022030BC: .word UNK04_02210E5C + arm_func_end MOD04_02203048 arm_func_start MOD04_022030C0 MOD04_022030C0: ; 0x022030C0 @@ -48914,6 +49751,7 @@ _02203264: .align 2, 0 _0220328C: .word UNK04_0220F7A8 _02203290: .word UNK04_0220F7B8 + arm_func_end MOD04_022030C0 arm_func_start MOD04_02203294 MOD04_02203294: ; 0x02203294 @@ -48923,6 +49761,7 @@ MOD04_02203294: ; 0x02203294 str r1, [r0] str r2, [r0, #8] bx lr + arm_func_end MOD04_02203294 arm_func_start MOD04_022032AC MOD04_022032AC: ; 0x022032AC @@ -48956,6 +49795,7 @@ _02203300: _02203310: mov r0, #0 bx lr + arm_func_end MOD04_022032AC arm_func_start MOD04_02203318 MOD04_02203318: ; 0x02203318 @@ -48974,6 +49814,7 @@ MOD04_02203318: ; 0x02203318 _02203348: mov r0, r2 bx lr + arm_func_end MOD04_02203318 arm_func_start MOD04_02203350 MOD04_02203350: ; 0x02203350 @@ -48987,6 +49828,7 @@ MOD04_02203350: ; 0x02203350 add r1, r1, #1 str r1, [r0, #8] bx lr + arm_func_end MOD04_02203350 arm_func_start MOD04_02203378 MOD04_02203378: ; 0x02203378 @@ -49003,6 +49845,7 @@ MOD04_02203378: ; 0x02203378 add r1, r1, #1 str r1, [r0, #8] bx lr + arm_func_end MOD04_02203378 arm_func_start MOD04_022033AC MOD04_022033AC: ; 0x022033AC @@ -49014,32 +49857,38 @@ MOD04_022033AC: ; 0x022033AC bx lr .align 2, 0 _022033C4: .word UNK04_02211738 + arm_func_end MOD04_022033AC arm_func_start MOD04_022033C8 MOD04_022033C8: ; 0x022033C8 ldrb r0, [r0, #0x14] bx lr + arm_func_end MOD04_022033C8 arm_func_start MOD04_022033D0 MOD04_022033D0: ; 0x022033D0 strb r1, [r0, #0x14] bx lr + arm_func_end MOD04_022033D0 arm_func_start MOD04_022033D8 MOD04_022033D8: ; 0x022033D8 str r1, [r0, #0x10] bx lr + arm_func_end MOD04_022033D8 arm_func_start MOD04_022033E0 MOD04_022033E0: ; 0x022033E0 str r1, [r0, #8] strh r2, [r0, #0xc] bx lr + arm_func_end MOD04_022033E0 arm_func_start MOD04_022033EC MOD04_022033EC: ; 0x022033EC strb r1, [r0, #0x15] bx lr + arm_func_end MOD04_022033EC arm_func_start MOD04_022033F4 MOD04_022033F4: ; 0x022033F4 @@ -49089,20 +49938,23 @@ _02203464: _02203498: .word MOD04_022034AC _0220349C: .word MOD04_022034D0 _022034A0: .word MOD04_022034C0 + arm_func_end MOD04_022033F4 arm_func_start MOD04_022034A4 MOD04_022034A4: ; 0x022034A4 ldr r0, [r0, #0x1c] bx lr + arm_func_end MOD04_022034A4 arm_func_start MOD04_022034AC MOD04_022034AC: ; 0x022034AC - ldr ip, _022034BC ; =0x020E9B38 + ldr ip, _022034BC ; =strnicmp ldr r0, [r0] ldr r1, [r1] bx ip .align 2, 0 -_022034BC: .word 0x020E9B38 +_022034BC: .word strnicmp + arm_func_end MOD04_022034AC arm_func_start MOD04_022034C0 MOD04_022034C0: ; 0x022034C0 @@ -49111,6 +49963,7 @@ MOD04_022034C0: ; 0x022034C0 bx ip .align 2, 0 _022034CC: .word MOD04_022034F4 + arm_func_end MOD04_022034C0 arm_func_start MOD04_022034D0 MOD04_022034D0: ; 0x022034D0 @@ -49123,6 +49976,7 @@ MOD04_022034D0: ; 0x022034D0 mov r0, #0 bl MOD04_022063A8 ldmia sp!, {r4, pc} + arm_func_end MOD04_022034D0 arm_func_start MOD04_022034F4 MOD04_022034F4: ; 0x022034F4 @@ -49154,6 +50008,7 @@ _02203538: .align 2, 0 _0220354C: .word 0x0210420C _02203550: .word 0x9CCF9319 + arm_func_end MOD04_022034F4 arm_func_start MOD04_02203554 MOD04_02203554: ; 0x02203554 @@ -49288,6 +50143,7 @@ _02203718: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _02203734: .word UNK04_0220F7D4 + arm_func_end MOD04_02203554 arm_func_start MOD04_02203738 MOD04_02203738: ; 0x02203738 @@ -49327,6 +50183,7 @@ _0220379C: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _022037B8: .word UNK04_0220F7DC + arm_func_end MOD04_02203738 arm_func_start MOD04_022037BC MOD04_022037BC: ; 0x022037BC @@ -49361,6 +50218,7 @@ _022037F8: bx lr .align 2, 0 _02203824: .word UNK04_02211730 + arm_func_end MOD04_022037BC arm_func_start MOD04_02203828 MOD04_02203828: ; 0x02203828 @@ -49390,16 +50248,19 @@ _02203850: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02203884: .word UNK04_0220BCE0 + arm_func_end MOD04_02203828 arm_func_start MOD04_02203888 MOD04_02203888: ; 0x02203888 ldr r0, [r0, #0x20] bx lr + arm_func_end MOD04_02203888 arm_func_start MOD04_02203890 MOD04_02203890: ; 0x02203890 str r1, [r0, #0x20] bx lr + arm_func_end MOD04_02203890 arm_func_start MOD04_02203898 MOD04_02203898: ; 0x02203898 @@ -49412,11 +50273,13 @@ MOD04_02203898: ; 0x02203898 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 bx lr + arm_func_end MOD04_02203898 arm_func_start MOD04_022038BC MOD04_022038BC: ; 0x022038BC ldr r0, [r0, #8] bx lr + arm_func_end MOD04_022038BC arm_func_start MOD04_022038C4 MOD04_022038C4: ; 0x022038C4 @@ -49426,11 +50289,13 @@ MOD04_022038C4: ; 0x022038C4 moveq r0, #1 movne r0, #0 bx lr + arm_func_end MOD04_022038C4 arm_func_start MOD04_022038DC MOD04_022038DC: ; 0x022038DC ldrh r0, [r0, #4] bx lr + arm_func_end MOD04_022038DC arm_func_start MOD04_022038E4 MOD04_022038E4: ; 0x022038E4 @@ -49443,11 +50308,13 @@ MOD04_022038E4: ; 0x022038E4 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 bx lr + arm_func_end MOD04_022038E4 arm_func_start MOD04_02203908 MOD04_02203908: ; 0x02203908 ldr r0, [r0] bx lr + arm_func_end MOD04_02203908 arm_func_start MOD04_02203910 MOD04_02203910: ; 0x02203910 @@ -49467,6 +50334,7 @@ _0220393C: mov r1, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02203910 arm_func_start MOD04_0220394C MOD04_0220394C: ; 0x0220394C @@ -49514,6 +50382,7 @@ _022039D0: .align 2, 0 _022039D8: .word UNK04_0220F7E0 _022039DC: .word 0x0210430C + arm_func_end MOD04_0220394C arm_func_start MOD04_022039E0 MOD04_022039E0: ; 0x022039E0 @@ -49545,6 +50414,7 @@ _02203A0C: .align 2, 0 _02203A40: .word UNK04_0220F7E8 _02203A44: .word UNK04_0220F7F0 + arm_func_end MOD04_022039E0 arm_func_start MOD04_02203A48 MOD04_02203A48: ; 0x02203A48 @@ -49563,6 +50433,7 @@ MOD04_02203A48: ; 0x02203A48 ldmia sp!, {r4, r5, pc} .align 2, 0 _02203A7C: .word UNK04_0220F7FC + arm_func_end MOD04_02203A48 arm_func_start MOD04_02203A80 MOD04_02203A80: ; 0x02203A80 @@ -49582,6 +50453,7 @@ MOD04_02203A80: ; 0x02203A80 bl MOD04_021EF494 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02203A80 arm_func_start MOD04_02203AC0 MOD04_02203AC0: ; 0x02203AC0 @@ -49594,6 +50466,7 @@ MOD04_02203AC0: ; 0x02203AC0 str r1, [r4, #0x18] bl MOD04_021DD82C ldmia sp!, {r4, pc} + arm_func_end MOD04_02203AC0 arm_func_start MOD04_02203AE4 MOD04_02203AE4: ; 0x02203AE4 @@ -49618,6 +50491,7 @@ MOD04_02203AE4: ; 0x02203AE4 ldmfd sp!, {pc} .align 2, 0 _02203B30: .word UNK04_02211734 + arm_func_end MOD04_02203AE4 arm_func_start MOD04_02203B34 MOD04_02203B34: ; 0x02203B34 @@ -49648,6 +50522,7 @@ _02203B88: .word UNK04_02211734 _02203B8C: .word MOD04_02203BA8 _02203B90: .word MOD04_02203B98 _02203B94: .word MOD04_02203BBC + arm_func_end MOD04_02203B34 arm_func_start MOD04_02203B98 MOD04_02203B98: ; 0x02203B98 @@ -49656,15 +50531,17 @@ MOD04_02203B98: ; 0x02203B98 bx ip .align 2, 0 _02203BA4: .word MOD04_021DD82C + arm_func_end MOD04_02203B98 arm_func_start MOD04_02203BA8 MOD04_02203BA8: ; 0x02203BA8 - ldr ip, _02203BB8 ; =0x020E9B38 + ldr ip, _02203BB8 ; =strnicmp ldr r0, [r0] ldr r1, [r1] bx ip .align 2, 0 -_02203BB8: .word 0x020E9B38 +_02203BB8: .word strnicmp + arm_func_end MOD04_02203BA8 arm_func_start MOD04_02203BBC MOD04_02203BBC: ; 0x02203BBC @@ -49673,11 +50550,13 @@ MOD04_02203BBC: ; 0x02203BBC bx ip .align 2, 0 _02203BC8: .word MOD04_022034F4 + arm_func_end MOD04_02203BBC arm_func_start MOD04_02203BCC MOD04_02203BCC: ; 0x02203BCC ldr r0, [r0, #0x4ec] bx lr + arm_func_end MOD04_02203BCC arm_func_start MOD04_02203BD4 MOD04_02203BD4: ; 0x02203BD4 @@ -49686,6 +50565,7 @@ MOD04_02203BD4: ; 0x02203BD4 bx ip .align 2, 0 _02203BE0: .word MOD04_02206740 + arm_func_end MOD04_02203BD4 arm_func_start MOD04_02203BE4 MOD04_02203BE4: ; 0x02203BE4 @@ -49694,6 +50574,7 @@ MOD04_02203BE4: ; 0x02203BE4 bx ip .align 2, 0 _02203BF0: .word MOD04_0220658C + arm_func_end MOD04_02203BE4 arm_func_start MOD04_02203BF4 MOD04_02203BF4: ; 0x02203BF4 @@ -49702,6 +50583,7 @@ MOD04_02203BF4: ; 0x02203BF4 bx ip .align 2, 0 _02203C00: .word MOD04_02206570 + arm_func_end MOD04_02203BF4 arm_func_start MOD04_02203C04 MOD04_02203C04: ; 0x02203C04 @@ -49711,6 +50593,7 @@ MOD04_02203C04: ; 0x02203C04 add r0, r4, #0x4c bl MOD04_022064BC ldmia sp!, {r4, pc} + arm_func_end MOD04_02203C04 arm_func_start MOD04_02203C1C MOD04_02203C1C: ; 0x02203C1C @@ -49721,6 +50604,7 @@ MOD04_02203C1C: ; 0x02203C1C mov r0, r4 bl MOD04_02203024 ldmia sp!, {r4, pc} + arm_func_end MOD04_02203C1C arm_func_start MOD04_02203C38 MOD04_02203C38: ; 0x02203C38 @@ -49730,6 +50614,7 @@ MOD04_02203C38: ; 0x02203C38 add r0, r4, #0x4c bl MOD04_022041FC ldmia sp!, {r4, pc} + arm_func_end MOD04_02203C38 arm_func_start MOD04_02203C50 MOD04_02203C50: ; 0x02203C50 @@ -49744,6 +50629,7 @@ MOD04_02203C50: ; 0x02203C50 add r0, r4, #0x4c bl MOD04_0220659C ldmia sp!, {r4, pc} + arm_func_end MOD04_02203C50 arm_func_start MOD04_02203C7C MOD04_02203C7C: ; 0x02203C7C @@ -49765,6 +50651,7 @@ MOD04_02203C7C: ; 0x02203C7C mov r2, r2, lsr #0x10 bl MOD04_02204380 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_02203C7C arm_func_start MOD04_02203CC4 MOD04_02203CC4: ; 0x02203CC4 @@ -49790,6 +50677,7 @@ MOD04_02203CC4: ; 0x02203CC4 bl MOD04_02204438 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_02203CC4 arm_func_start MOD04_02203D1C MOD04_02203D1C: ; 0x02203D1C @@ -49806,6 +50694,7 @@ MOD04_02203D1C: ; 0x02203D1C bl MOD04_02203D50 add sp, sp, #0x14 ldmfd sp!, {pc} + arm_func_end MOD04_02203D1C arm_func_start MOD04_02203D50 MOD04_02203D50: ; 0x02203D50 @@ -49891,6 +50780,7 @@ _02203E4C: .align 2, 0 _02203E78: .word UNK04_0220F3A8 _02203E7C: .word UNK04_0220F800 + arm_func_end MOD04_02203D50 arm_func_start MOD04_02203E80 MOD04_02203E80: ; 0x02203E80 @@ -49903,6 +50793,7 @@ MOD04_02203E80: ; 0x02203E80 mov r0, r4 bl MOD04_021DD82C ldmia sp!, {r4, pc} + arm_func_end MOD04_02203E80 arm_func_start MOD04_02203EA4 MOD04_02203EA4: ; 0x02203EA4 @@ -49961,6 +50852,7 @@ _02203F68: .word UNK04_02210E5C _02203F6C: .word 0x00000638 _02203F70: .word MOD04_02204028 _02203F74: .word MOD04_02203F78 + arm_func_end MOD04_02203EA4 arm_func_start MOD04_02203F78 MOD04_02203F78: ; 0x02203F78 @@ -50012,6 +50904,7 @@ _02203FE8: streq r0, [r4, #0x628] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02203F78 arm_func_start MOD04_02204028 MOD04_02204028: ; 0x02204028 @@ -50149,6 +51042,7 @@ _022041C8: moveq r0, #0 streq r0, [r4, #0x628] ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_02204028 arm_func_start MOD04_022041FC MOD04_022041FC: ; 0x022041FC @@ -50175,6 +51069,7 @@ _02204234: _02204240: mov r0, #0 ldmia sp!, {r4, pc} + arm_func_end MOD04_022041FC arm_func_start MOD04_02204248 MOD04_02204248: ; 0x02204248 @@ -50261,6 +51156,7 @@ _02204364: _02204374: .word 0x000005F4 _02204378: .word 0x000005DB _0220437C: .word UNK04_02211738 + arm_func_end MOD04_02204248 arm_func_start MOD04_02204380 MOD04_02204380: ; 0x02204380 @@ -50310,6 +51206,7 @@ MOD04_02204380: ; 0x02204380 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_02204380 arm_func_start MOD04_02204438 MOD04_02204438: ; 0x02204438 @@ -50388,6 +51285,7 @@ _0220446C: ldmia sp!, {r4, r5, r6, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_02204438 arm_func_start MOD04_02204560 MOD04_02204560: ; 0x02204560 @@ -50456,6 +51354,7 @@ _02204640: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02204648: .word 0x000004BC + arm_func_end MOD04_02204560 arm_func_start MOD04_0220464C MOD04_0220464C: ; 0x0220464C @@ -50592,6 +51491,7 @@ _02204810: _0220481C: .word UNK04_0220F818 _02204820: .word UNK04_0220F830 _02204824: .word 0x000005B4 + arm_func_end MOD04_0220464C arm_func_start MOD04_02204828 MOD04_02204828: ; 0x02204828 @@ -50660,6 +51560,7 @@ _022048FC: mov r0, #0 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_02204828 arm_func_start MOD04_02204920 MOD04_02204920: ; 0x02204920 @@ -50699,6 +51600,7 @@ MOD04_02204920: ; 0x02204920 mov r0, #0 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02204920 arm_func_start MOD04_022049B0 MOD04_022049B0: ; 0x022049B0 @@ -50805,6 +51707,7 @@ _02204AFC: mov r0, #0 add sp, sp, #0x54 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_022049B0 arm_func_start MOD04_02204B40 MOD04_02204B40: ; 0x02204B40 @@ -50927,6 +51830,7 @@ _02204D04: mov r0, #0 add sp, sp, #0x24 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02204B40 arm_func_start MOD04_02204D10 MOD04_02204D10: ; 0x02204D10 @@ -50989,6 +51893,7 @@ _02204DE4: mov r0, #0 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02204D10 arm_func_start MOD04_02204DF0 MOD04_02204DF0: ; 0x02204DF0 @@ -51289,11 +52194,13 @@ _02205230: .word 0x0000FFFF _02205234: .word UNK04_0220F840 _02205238: .word UNK04_0220F830 _0220523C: .word 0x000004AF + arm_func_end MOD04_02204DF0 arm_func_start MOD04_02205240 MOD04_02205240: ; 0x02205240 str r1, [r0, #0x4ac] bx lr + arm_func_end MOD04_02205240 arm_func_start MOD04_02205248 MOD04_02205248: ; 0x02205248 @@ -51376,6 +52283,7 @@ _022052D8: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02205374: .word UNK04_0220F84C + arm_func_end MOD04_02205248 arm_func_start MOD04_02205378 MOD04_02205378: ; 0x02205378 @@ -51576,6 +52484,7 @@ _02205640: sub r0, r0, r7 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02205378 arm_func_start MOD04_02205650 MOD04_02205650: ; 0x02205650 @@ -51615,6 +52524,7 @@ _022056C4: strh r1, [r0] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02205650 arm_func_start MOD04_022056DC MOD04_022056DC: ; 0x022056DC @@ -51694,6 +52604,7 @@ _022057D4: _022057E0: .word UNK04_0220F854 _022057E4: .word UNK04_0220F830 _022057E8: .word 0x00000317 + arm_func_end MOD04_022056DC arm_func_start MOD04_022057EC MOD04_022057EC: ; 0x022057EC @@ -51738,6 +52649,7 @@ _0220585C: movne r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_022057EC arm_func_start MOD04_02205884 MOD04_02205884: ; 0x02205884 @@ -51752,6 +52664,7 @@ MOD04_02205884: ; 0x02205884 addne r2, r2, #2 mov r0, r2 bx lr + arm_func_end MOD04_02205884 arm_func_start MOD04_022058B0 MOD04_022058B0: ; 0x022058B0 @@ -51801,6 +52714,7 @@ _0220593C: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _02205958: .word 0x000004BC + arm_func_end MOD04_022058B0 arm_func_start MOD04_0220595C MOD04_0220595C: ; 0x0220595C @@ -51819,6 +52733,7 @@ _02205988: mov r0, #0 str r0, [r4, #4] ldmia sp!, {r4, pc} + arm_func_end MOD04_0220595C arm_func_start MOD04_02205994 MOD04_02205994: ; 0x02205994 @@ -51849,6 +52764,7 @@ _022059CC: str r1, [r4, #0x484] bl MOD04_02205A68 ldmia sp!, {r4, pc} + arm_func_end MOD04_02205994 arm_func_start MOD04_022059F8 MOD04_022059F8: ; 0x022059F8 @@ -51882,6 +52798,7 @@ _02205A50: str r0, [r5, #8] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_022059F8 arm_func_start MOD04_02205A68 MOD04_02205A68: ; 0x02205A68 @@ -51906,6 +52823,7 @@ _02205AA4: str r0, [r5, #0x480] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02205A68 arm_func_start MOD04_02205AB4 MOD04_02205AB4: ; 0x02205AB4 @@ -52072,6 +52990,7 @@ _02205D18: .word UNK04_0220F858 _02205D1C: .word UNK04_0220F830 _02205D20: .word 0x0000020A _02205D24: .word UNK04_0220F878 + arm_func_end MOD04_02205AB4 arm_func_start MOD04_02205D28 MOD04_02205D28: ; 0x02205D28 @@ -52119,6 +53038,7 @@ _02205DB8: movgt r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02205D28 arm_func_start MOD04_02205DCC MOD04_02205DCC: ; 0x02205DCC @@ -52197,6 +53117,7 @@ _02205EC8: .align 2, 0 _02205EDC: .word 0x2C0B02C1 _02205EE0: .word 0x0000005D + arm_func_end MOD04_02205DCC arm_func_start MOD04_02205EE4 MOD04_02205EE4: ; 0x02205EE4 @@ -52213,6 +53134,7 @@ MOD04_02205EE4: ; 0x02205EE4 add r0, r0, r5 str r0, [r6] ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_02205EE4 arm_func_start MOD04_02205F18 MOD04_02205F18: ; 0x02205F18 @@ -52239,6 +53161,7 @@ MOD04_02205F18: ; 0x02205F18 ldmia sp!, {lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_02205F18 arm_func_start MOD04_02205F74 MOD04_02205F74: ; 0x02205F74 @@ -52251,6 +53174,7 @@ MOD04_02205F74: ; 0x02205F74 add r1, r1, #1 str r1, [r0] bx lr + arm_func_end MOD04_02205F74 arm_func_start MOD04_02205F98 MOD04_02205F98: ; 0x02205F98 @@ -52277,6 +53201,7 @@ MOD04_02205F98: ; 0x02205F98 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _02205FEC: .word UNK04_0220F878 + arm_func_end MOD04_02205F98 arm_func_start MOD04_02205FF0 MOD04_02205FF0: ; 0x02205FF0 @@ -52362,6 +53287,7 @@ _022060E0: _02206118: .word UNK04_0221173C _0220611C: .word UNK04_0220F87C _02206120: .word 0x0000EE70 + arm_func_end MOD04_02205FF0 arm_func_start MOD04_02206124 MOD04_02206124: ; 0x02206124 @@ -52393,6 +53319,7 @@ _02206168: .align 2, 0 _0220617C: .word 0x0210420C _02206180: .word 0x9CCF9319 + arm_func_end MOD04_02206124 arm_func_start MOD04_02206184 MOD04_02206184: ; 0x02206184 @@ -52447,6 +53374,7 @@ _02206214: .align 2, 0 _02206240: .word UNK04_0220F804 _02206244: .word UNK04_02211738 + arm_func_end MOD04_02206184 arm_func_start MOD04_02206248 MOD04_02206248: ; 0x02206248 @@ -52530,6 +53458,7 @@ _02206368: .word UNK04_02210E5C _0220636C: .word UNK04_0220F8A8 _02206370: .word 0x00000132 _02206374: .word UNK04_0220F878 + arm_func_end MOD04_02206248 arm_func_start MOD04_02206378 MOD04_02206378: ; 0x02206378 @@ -52547,6 +53476,7 @@ _02206384: _022063A0: mvn r0, #0 bx lr + arm_func_end MOD04_02206378 arm_func_start MOD04_022063A8 MOD04_022063A8: ; 0x022063A8 @@ -52584,6 +53514,7 @@ _022063E0: .align 2, 0 _02206420: .word UNK04_0220F8BC _02206424: .word UNK04_0220F830 + arm_func_end MOD04_022063A8 arm_func_start MOD04_02206428 MOD04_02206428: ; 0x02206428 @@ -52614,6 +53545,7 @@ MOD04_02206428: ; 0x02206428 ldr r0, [sp] add sp, sp, #0xc ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_02206428 arm_func_start MOD04_02206494 MOD04_02206494: ; 0x02206494 @@ -52627,6 +53559,7 @@ MOD04_02206494: ; 0x02206494 mov r0, #0 str r0, [r4, #0x5d0] ldmia sp!, {r4, pc} + arm_func_end MOD04_02206494 arm_func_start MOD04_022064BC MOD04_022064BC: ; 0x022064BC @@ -52654,6 +53587,7 @@ _02206500: mov r0, r6 bl MOD04_02206514 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_022064BC arm_func_start MOD04_02206514 MOD04_02206514: ; 0x02206514 @@ -52682,6 +53616,7 @@ _02206560: str r0, [r6, #0x5d0] add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_02206514 arm_func_start MOD04_02206570 MOD04_02206570: ; 0x02206570 @@ -52692,6 +53627,7 @@ MOD04_02206570: ; 0x02206570 ldr r0, [r0] add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_02206570 arm_func_start MOD04_0220658C MOD04_0220658C: ; 0x0220658C @@ -52700,6 +53636,7 @@ MOD04_0220658C: ; 0x0220658C bx ip .align 2, 0 _02206598: .word MOD04_021EF06C + arm_func_end MOD04_0220658C arm_func_start MOD04_0220659C MOD04_0220659C: ; 0x0220659C @@ -52722,6 +53659,7 @@ MOD04_0220659C: ; 0x0220659C mov r1, r4 bl MOD04_022065E8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_0220659C arm_func_start MOD04_022065E8 MOD04_022065E8: ; 0x022065E8 @@ -52743,6 +53681,7 @@ _0220661C: str r4, [r5, #0x5d0] add sp, sp, #4 ldmia sp!, {r4, r5, pc} + arm_func_end MOD04_022065E8 arm_func_start MOD04_02206628 MOD04_02206628: ; 0x02206628 @@ -52780,6 +53719,7 @@ _02206698: mvn r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_02206628 arm_func_start MOD04_022066A4 MOD04_022066A4: ; 0x022066A4 @@ -52809,6 +53749,7 @@ _022066F8: mvn r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} + arm_func_end MOD04_022066A4 arm_func_start MOD04_02206704 MOD04_02206704: ; 0x02206704 @@ -52827,6 +53768,7 @@ MOD04_02206704: ; 0x02206704 ldmia sp!, {r4, lr} add sp, sp, #0x10 bx lr + arm_func_end MOD04_02206704 arm_func_start MOD04_02206740 MOD04_02206740: ; 0x02206740 @@ -52868,6 +53810,7 @@ _022067A8: .word MOD04_02206828 _022067AC: .word MOD04_022067B8 _022067B0: .word UNK04_02211740 _022067B4: .word MOD04_021EED08 + arm_func_end MOD04_02206740 arm_func_start MOD04_022067B8 MOD04_022067B8: ; 0x022067B8 @@ -52900,6 +53843,7 @@ MOD04_022067B8: ; 0x022067B8 .align 2, 0 _02206820: .word UNK04_02211740 _02206824: .word UNK04_0220F878 + arm_func_end MOD04_022067B8 arm_func_start MOD04_02206828 MOD04_02206828: ; 0x02206828 @@ -52932,6 +53876,7 @@ MOD04_02206828: ; 0x02206828 .align 2, 0 _02206890: .word UNK04_02211740 _02206894: .word UNK04_0220F878 + arm_func_end MOD04_02206828 arm_func_start MOD04_02206898 MOD04_02206898: ; 0x02206898 @@ -52993,6 +53938,7 @@ _0220692C: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02206974: .word UNK04_02211740 + arm_func_end MOD04_02206898 arm_func_start MOD04_02206978 MOD04_02206978: ; 0x02206978 @@ -53022,6 +53968,7 @@ MOD04_02206978: ; 0x02206978 ldmia sp!, {r4, r5, pc} .align 2, 0 _022069D8: .word UNK04_02211740 + arm_func_end MOD04_02206978 arm_func_start MOD04_022069DC MOD04_022069DC: ; 0x022069DC @@ -53054,6 +54001,7 @@ _02206A3C: bl MOD04_02208350 mov r0, #0 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_022069DC arm_func_start MOD04_02206A4C MOD04_02206A4C: ; 0x02206A4C @@ -53109,6 +54057,7 @@ _02206B00: _02206B08: .word UNK04_02211760 _02206B0C: .word UNK04_02211750 _02206B10: .word UNK04_02211778 + arm_func_end MOD04_02206A4C arm_func_start MOD04_02206B14 MOD04_02206B14: ; 0x02206B14 @@ -53134,6 +54083,7 @@ _02206B44: .align 2, 0 _02206B58: .word UNK04_02211764 _02206B5C: .word UNK04_02211778 + arm_func_end MOD04_02206B14 arm_func_start MOD04_02206B60 MOD04_02206B60: ; 0x02206B60 @@ -53221,6 +54171,7 @@ _02206C84: strb r1, [sl] add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02206B60 arm_func_start MOD04_02206C98 MOD04_02206C98: ; 0x02206C98 @@ -53294,6 +54245,7 @@ _02206D8C: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _02206DA0: .word UNK04_0220BCE8 + arm_func_end MOD04_02206C98 arm_func_start MOD04_02206DA4 MOD04_02206DA4: ; 0x02206DA4 @@ -53305,6 +54257,7 @@ MOD04_02206DA4: ; 0x02206DA4 bx lr .align 2, 0 _02206DBC: .word 0x55555556 + arm_func_end MOD04_02206DA4 arm_func_start MOD04_02206DC0 MOD04_02206DC0: ; 0x02206DC0 @@ -53312,6 +54265,7 @@ MOD04_02206DC0: ; 0x02206DC0 mov r0, #3 mul r0, r1, r0 bx lr + arm_func_end MOD04_02206DC0 arm_func_start MOD04_02206DD0 MOD04_02206DD0: ; 0x02206DD0 @@ -53340,6 +54294,7 @@ _02206E0C: moveq r0, #0x3f mvnne r0, #0 bx lr + arm_func_end MOD04_02206DD0 arm_func_start MOD04_02206E28 MOD04_02206E28: ; 0x02206E28 @@ -53362,6 +54317,7 @@ _02206E40: _02206E64: mov r0, lr ldmia sp!, {r4, pc} + arm_func_end MOD04_02206E28 arm_func_start MOD04_02206E6C MOD04_02206E6C: ; 0x02206E6C @@ -53378,6 +54334,7 @@ _02206E8C: .word UNK04_02211744 _02206E90: .word UNK04_02211758 _02206E94: .word MOD04_02208570 _02206E98: .word MOD04_02206E9C + arm_func_end MOD04_02206E6C arm_func_start MOD04_02206E9C MOD04_02206E9C: ; 0x02206E9C @@ -53406,6 +54363,7 @@ _02206EEC: .word UNK04_0221174C _02206EF0: .word UNK04_02211764 _02206EF4: .word UNK04_02211754 _02206EF8: .word UNK04_02211744 + arm_func_end MOD04_02206E9C arm_func_start MOD04_02206EFC MOD04_02206EFC: ; 0x02206EFC @@ -53547,6 +54505,7 @@ _022070FC: .word UNK04_0221176C _02207100: .word UNK04_022117B0 _02207104: .word UNK04_02211798 _02207108: .word UNK04_02211758 + arm_func_end MOD04_02206EFC arm_func_start MOD04_0220710C MOD04_0220710C: ; 0x0220710C @@ -53571,6 +54530,7 @@ _0220714C: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02207154: .word UNK04_02211750 + arm_func_end MOD04_0220710C arm_func_start MOD04_02207158 MOD04_02207158: ; 0x02207158 @@ -53591,6 +54551,7 @@ _02207184: ldmia sp!, {r4, pc} .align 2, 0 _02207190: .word UNK04_02211768 + arm_func_end MOD04_02207158 arm_func_start MOD04_02207194 MOD04_02207194: ; 0x02207194 @@ -53606,6 +54567,7 @@ MOD04_02207194: ; 0x02207194 ldmfd sp!, {pc} .align 2, 0 _022071BC: .word UNK04_0220F9B0 + arm_func_end MOD04_02207194 arm_func_start MOD04_022071C0 MOD04_022071C0: ; 0x022071C0 @@ -53645,6 +54607,7 @@ MOD04_022071C0: ; 0x022071C0 ldmia sp!, {r4, r5, pc} .align 2, 0 _02207248: .word 0x027FFE0C + arm_func_end MOD04_022071C0 arm_func_start MOD04_0220724C MOD04_0220724C: ; 0x0220724C @@ -53711,6 +54674,7 @@ _02207318: _02207324: .word UNK04_0220BD2C _02207328: .word UNK04_022117F0 _0220732C: .word UNK04_022117F8 + arm_func_end MOD04_0220724C arm_func_start MOD04_02207330 MOD04_02207330: ; 0x02207330 @@ -53718,6 +54682,7 @@ MOD04_02207330: ; 0x02207330 bx ip .align 2, 0 _02207338: .word MOD04_0220B55C + arm_func_end MOD04_02207330 arm_func_start MOD04_0220733C MOD04_0220733C: ; 0x0220733C @@ -53834,6 +54799,7 @@ _022074DC: .word UNK04_02211750 _022074E0: .word UNK04_0220BD54 _022074E4: .word UNK04_02211764 _022074E8: .word UNK04_0220F9CC + arm_func_end MOD04_0220733C arm_func_start MOD04_022074EC MOD04_022074EC: ; 0x022074EC @@ -54017,6 +54983,7 @@ _02207798: .word UNK04_02211764 _0220779C: .word UNK04_0220BD3C _022077A0: .word UNK04_0220F9D8 _022077A4: .word UNK04_0220F9E0 + arm_func_end MOD04_022074EC arm_func_start MOD04_022077A8 MOD04_022077A8: ; 0x022077A8 @@ -54050,6 +55017,7 @@ MOD04_022077A8: ; 0x022077A8 .align 2, 0 _02207814: .word UNK04_0220BD48 _02207818: .word UNK04_02211850 + arm_func_end MOD04_022077A8 arm_func_start MOD04_0220781C MOD04_0220781C: ; 0x0220781C @@ -54082,6 +55050,7 @@ MOD04_0220781C: ; 0x0220781C .align 2, 0 _02207884: .word UNK04_02211768 _02207888: .word UNK04_02211760 + arm_func_end MOD04_0220781C arm_func_start MOD04_0220788C MOD04_0220788C: ; 0x0220788C @@ -54295,6 +55264,7 @@ _02207BA4: .word UNK04_0220FA3C _02207BA8: .word UNK04_02211748 _02207BAC: .word UNK04_0220FA44 _02207BB0: .word UNK04_02211798 + arm_func_end MOD04_0220788C arm_func_start MOD04_02207BB4 MOD04_02207BB4: ; 0x02207BB4 @@ -54310,6 +55280,7 @@ MOD04_02207BB4: ; 0x02207BB4 ldmia sp!, {r4, pc} .align 2, 0 _02207BDC: .word UNK04_02211764 + arm_func_end MOD04_02207BB4 arm_func_start MOD04_02207BE0 MOD04_02207BE0: ; 0x02207BE0 @@ -54548,6 +55519,7 @@ _02207F0C: .word UNK04_0220FA5C _02207F10: .word UNK04_02211764 _02207F14: .word UNK04_02211768 _02207F18: .word UNK04_02211760 + arm_func_end MOD04_02207BE0 arm_func_start MOD04_02207F1C MOD04_02207F1C: ; 0x02207F1C @@ -54573,6 +55545,7 @@ _02207F64: mov r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_02207F1C arm_func_start MOD04_02207F70 MOD04_02207F70: ; 0x02207F70 @@ -54587,6 +55560,7 @@ MOD04_02207F70: ; 0x02207F70 movne r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} + arm_func_end MOD04_02207F70 arm_func_start MOD04_02207F9C MOD04_02207F9C: ; 0x02207F9C @@ -54771,6 +55745,7 @@ _02208218: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _02208224: .word UNK04_0220FA68 + arm_func_end MOD04_02207F9C arm_func_start MOD04_02208228 MOD04_02208228: ; 0x02208228 @@ -54800,15 +55775,17 @@ _02208250: bl MOD04_02206C98 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD04_02208228 arm_func_start MOD04_0220828C MOD04_0220828C: ; 0x0220828C - ldr ip, _0220829C ; =0x020CBDC4 + ldr ip, _0220829C ; =OS_SendMessage mov r1, #0 mov r2, r1 bx ip .align 2, 0 -_0220829C: .word 0x020CBDC4 +_0220829C: .word OS_SendMessage + arm_func_end MOD04_0220828C arm_func_start MOD04_022082A0 MOD04_022082A0: ; 0x022082A0 @@ -54826,6 +55803,7 @@ MOD04_022082A0: ; 0x022082A0 .align 2, 0 _022082CC: .word UNK04_022118D4 _022082D0: .word UNK04_022118D0 + arm_func_end MOD04_022082A0 arm_func_start MOD04_022082D4 MOD04_022082D4: ; 0x022082D4 @@ -54848,10 +55826,12 @@ MOD04_022082D4: ; 0x022082D4 .align 2, 0 _02208314: .word UNK04_022118D4 _02208318: .word UNK04_022118D0 + arm_func_end MOD04_022082D4 arm_func_start MOD04_0220831C MOD04_0220831C: ; 0x0220831C bx lr + arm_func_end MOD04_0220831C arm_func_start MOD04_02208320 MOD04_02208320: ; 0x02208320 @@ -54868,28 +55848,32 @@ MOD04_02208320: ; 0x02208320 .align 2, 0 _02208348: .word UNK04_022118D4 _0220834C: .word UNK04_022118D0 + arm_func_end MOD04_02208320 arm_func_start MOD04_02208350 MOD04_02208350: ; 0x02208350 - ldr ip, _0220835C ; =0x020CBFA0 + ldr ip, _0220835C ; =OS_UnlockMutex ldr r0, _02208360 ; =UNK04_022118EC bx ip .align 2, 0 -_0220835C: .word 0x020CBFA0 +_0220835C: .word OS_UnlockMutex _02208360: .word UNK04_022118EC + arm_func_end MOD04_02208350 arm_func_start MOD04_02208364 MOD04_02208364: ; 0x02208364 - ldr ip, _02208370 ; =0x020CC010 + ldr ip, _02208370 ; =OS_LockMutex ldr r0, _02208374 ; =UNK04_022118EC bx ip .align 2, 0 -_02208370: .word 0x020CC010 +_02208370: .word OS_LockMutex _02208374: .word UNK04_022118EC + arm_func_end MOD04_02208364 arm_func_start MOD04_02208378 MOD04_02208378: ; 0x02208378 bx lr + arm_func_end MOD04_02208378 arm_func_start MOD04_0220837C MOD04_0220837C: ; 0x0220837C @@ -54902,39 +55886,44 @@ MOD04_0220837C: ; 0x0220837C ldmfd sp!, {pc} .align 2, 0 _02208398: .word UNK04_022118EC + arm_func_end MOD04_0220837C arm_func_start MOD04_0220839C MOD04_0220839C: ; 0x0220839C - ldr ip, _022083B0 ; =0x020CE3E0 + ldr ip, _022083B0 ; =MI_CpuCopy8 mov r3, r0 mov r0, r1 mov r1, r3 bx ip .align 2, 0 -_022083B0: .word 0x020CE3E0 +_022083B0: .word MI_CpuCopy8 + arm_func_end MOD04_0220839C arm_func_start MOD04_022083B4 MOD04_022083B4: ; 0x022083B4 - ldr ip, _022083C4 ; =0x020CE34C + ldr ip, _022083C4 ; =MI_CpuFill8 mov r2, r1 mov r1, #0 bx ip .align 2, 0 -_022083C4: .word 0x020CE34C +_022083C4: .word MI_CpuFill8 + arm_func_end MOD04_022083B4 arm_func_start MOD04_022083C8 MOD04_022083C8: ; 0x022083C8 - ldr ip, _022083D0 ; =0x020DE03C + ldr ip, _022083D0 ; =STD_CompareNString bx ip .align 2, 0 -_022083D0: .word 0x020DE03C +_022083D0: .word STD_CompareNString + arm_func_end MOD04_022083C8 arm_func_start MOD04_022083D4 MOD04_022083D4: ; 0x022083D4 - ldr ip, _022083DC ; =0x020DE0BC + ldr ip, _022083DC ; =STD_GetStringLength bx ip .align 2, 0 -_022083DC: .word 0x020DE0BC +_022083DC: .word STD_GetStringLength + arm_func_end MOD04_022083D4 arm_func_start MOD04_022083E0 MOD04_022083E0: ; 0x022083E0 @@ -54967,6 +55956,7 @@ _02208440: mov r0, ip add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_022083E0 arm_func_start MOD04_0220844C MOD04_0220844C: ; 0x0220844C @@ -55042,6 +56032,7 @@ _02208530: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _02208554: .word UNK04_0220BD64 + arm_func_end MOD04_0220844C arm_func_start MOD04_02208558 MOD04_02208558: ; 0x02208558 @@ -55049,6 +56040,7 @@ MOD04_02208558: ; 0x02208558 bx ip .align 2, 0 _02208560: .word MOD04_0220B788 + arm_func_end MOD04_02208558 arm_func_start MOD04_02208564 MOD04_02208564: ; 0x02208564 @@ -55056,6 +56048,7 @@ MOD04_02208564: ; 0x02208564 bx ip .align 2, 0 _0220856C: .word MOD04_0220B844 + arm_func_end MOD04_02208564 arm_func_start MOD04_02208570 MOD04_02208570: ; 0x02208570 @@ -55078,6 +56071,7 @@ MOD04_02208570: ; 0x02208570 _022085AC: .word UNK04_0221191C _022085B0: .word UNK04_02211904 _022085B4: .word UNK04_02211920 + arm_func_end MOD04_02208570 arm_func_start MOD04_022085B8 MOD04_022085B8: ; 0x022085B8 @@ -55154,6 +56148,7 @@ _022086C4: .word UNK04_0221190C _022086C8: .word UNK04_02211918 _022086CC: .word UNK04_0221191C _022086D0: .word UNK04_02211920 + arm_func_end MOD04_022085B8 arm_func_start MOD04_022086D4 MOD04_022086D4: ; 0x022086D4 @@ -55164,6 +56159,7 @@ MOD04_022086D4: ; 0x022086D4 streq r2, [r0, #0x18] moveq r0, #1 bx lr + arm_func_end MOD04_022086D4 arm_func_start MOD04_022086F0 MOD04_022086F0: ; 0x022086F0 @@ -55177,7 +56173,7 @@ MOD04_022086F0: ; 0x022086F0 movne r0, r5 ldmneia sp!, {r4, r5, r6, r7, r8, pc} mov r0, r6 - bl MOD04_02209FBC + bl MOD04_strlen mov r4, r0 mov r0, r8 mov r1, r6 @@ -55197,6 +56193,7 @@ MOD04_022086F0: ; 0x022086F0 _0220875C: mov r0, r5 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_022086F0 arm_func_start MOD04_02208764 MOD04_02208764: ; 0x02208764 @@ -55212,6 +56209,7 @@ MOD04_02208764: ; 0x02208764 bl MOD04_022088CC add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_02208764 arm_func_start MOD04_02208794 MOD04_02208794: ; 0x02208794 @@ -55267,6 +56265,7 @@ _02208834: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _02208850: .word UNK04_0220BDF7 + arm_func_end MOD04_02208794 arm_func_start MOD04_02208854 MOD04_02208854: ; 0x02208854 @@ -55284,6 +56283,7 @@ _0220887C: mov r0, r0, lsl #0x18 mov r0, r0, asr #0x18 bx lr + arm_func_end MOD04_02208854 arm_func_start MOD04_02208888 MOD04_02208888: ; 0x02208888 @@ -55305,6 +56305,7 @@ MOD04_02208888: ; 0x02208888 _022088C4: mov r0, r3 bx lr + arm_func_end MOD04_02208888 arm_func_start MOD04_022088CC MOD04_022088CC: ; 0x022088CC @@ -55382,6 +56383,7 @@ _022089D0: .align 2, 0 _022089D8: .word UNK04_02211924 _022089DC: .word UNK04_02211908 + arm_func_end MOD04_022088CC arm_func_start MOD04_022089E0 MOD04_022089E0: ; 0x022089E0 @@ -55391,6 +56393,7 @@ MOD04_022089E0: ; 0x022089E0 .align 2, 0 _022089EC: .word MOD04_02208888 _022089F0: .word UNK04_02211910 + arm_func_end MOD04_022089E0 arm_func_start MOD04_022089F4 MOD04_022089F4: ; 0x022089F4 @@ -55408,6 +56411,7 @@ _02208A08: ldmia sp!, {r4, pc} .align 2, 0 _02208A20: .word UNK04_02211910 + arm_func_end MOD04_022089F4 arm_func_start MOD04_02208A24 MOD04_02208A24: ; 0x02208A24 @@ -55458,6 +56462,7 @@ _02208ABC: .align 2, 0 _02208AC8: .word UNK04_02211910 _02208ACC: .word UNK04_02211904 + arm_func_end MOD04_02208A24 arm_func_start MOD04_02208AD0 MOD04_02208AD0: ; 0x02208AD0 @@ -55486,6 +56491,7 @@ _02208B1C: bx lr .align 2, 0 _02208B24: .word UNK04_02211910 + arm_func_end MOD04_02208AD0 arm_func_start MOD04_02208B28 MOD04_02208B28: ; 0x02208B28 @@ -55539,17 +56545,19 @@ _02208BCC: _02208BD8: .word UNK04_02211924 _02208BDC: .word UNK04_02211910 _02208BE0: .word UNK04_0221190C + arm_func_end MOD04_02208B28 arm_func_start MOD04_02208BE4 MOD04_02208BE4: ; 0x02208BE4 - ldr ip, _02208BF8 ; =0x020CBDC4 + ldr ip, _02208BF8 ; =OS_SendMessage mov r1, #0 ldr r0, _02208BFC ; =UNK04_02211944 mov r2, r1 bx ip .align 2, 0 -_02208BF8: .word 0x020CBDC4 +_02208BF8: .word OS_SendMessage _02208BFC: .word UNK04_02211944 + arm_func_end MOD04_02208BE4 arm_func_start MOD04_02208C00 MOD04_02208C00: ; 0x02208C00 @@ -55563,6 +56571,7 @@ MOD04_02208C00: ; 0x02208C00 ldmfd sp!, {pc} .align 2, 0 _02208C20: .word UNK04_02211944 + arm_func_end MOD04_02208C00 arm_func_start MOD04_02208C24 MOD04_02208C24: ; 0x02208C24 @@ -55579,6 +56588,7 @@ MOD04_02208C24: ; 0x02208C24 .align 2, 0 _02208C4C: .word UNK04_02211918 _02208C50: .word UNK04_02211964 + arm_func_end MOD04_02208C24 arm_func_start MOD04_02208C54 MOD04_02208C54: ; 0x02208C54 @@ -55613,28 +56623,32 @@ _02208CBC: .word UNK04_02211944 _02208CC0: .word UNK04_02211928 _02208CC4: .word UNK04_02211964 _02208CC8: .word MOD04_0220A044 + arm_func_end MOD04_02208C54 arm_func_start MOD04_02208CCC MOD04_02208CCC: ; 0x02208CCC - ldr ip, _02208CD8 ; =0x020CBFA0 + ldr ip, _02208CD8 ; =OS_UnlockMutex ldr r0, _02208CDC ; =UNK04_0221192C bx ip .align 2, 0 -_02208CD8: .word 0x020CBFA0 +_02208CD8: .word OS_UnlockMutex _02208CDC: .word UNK04_0221192C + arm_func_end MOD04_02208CCC arm_func_start MOD04_02208CE0 MOD04_02208CE0: ; 0x02208CE0 - ldr ip, _02208CEC ; =0x020CC010 + ldr ip, _02208CEC ; =OS_LockMutex ldr r0, _02208CF0 ; =UNK04_0221192C bx ip .align 2, 0 -_02208CEC: .word 0x020CC010 +_02208CEC: .word OS_LockMutex _02208CF0: .word UNK04_0221192C + arm_func_end MOD04_02208CE0 arm_func_start MOD04_02208CF4 MOD04_02208CF4: ; 0x02208CF4 bx lr + arm_func_end MOD04_02208CF4 arm_func_start MOD04_02208CF8 MOD04_02208CF8: ; 0x02208CF8 @@ -55647,6 +56661,7 @@ MOD04_02208CF8: ; 0x02208CF8 ldmfd sp!, {pc} .align 2, 0 _02208D14: .word UNK04_0221192C + arm_func_end MOD04_02208CF8 arm_func_start MOD04_02208D18 MOD04_02208D18: ; 0x02208D18 @@ -55679,6 +56694,7 @@ MOD04_02208D18: ; 0x02208D18 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02208D84: .word 0xFFFFFC15 + arm_func_end MOD04_02208D18 arm_func_start MOD04_02208D88 MOD04_02208D88: ; 0x02208D88 @@ -55694,6 +56710,7 @@ MOD04_02208D88: ; 0x02208D88 bl MOD04_02209DB4 add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_02208D88 arm_func_start MOD04_02208DB8 MOD04_02208DB8: ; 0x02208DB8 @@ -55702,6 +56719,7 @@ MOD04_02208DB8: ; 0x02208DB8 movls r0, #1 movhi r0, #0 bx lr + arm_func_end MOD04_02208DB8 arm_func_start MOD04_02208DCC MOD04_02208DCC: ; 0x02208DCC @@ -55726,7 +56744,7 @@ MOD04_02208DCC: ; 0x02208DCC mov r0, r8 mov r2, r5 add r1, r1, r7 - bl MOD04_02209F90 + bl MOD04_memcpy add r7, r7, r5 sub r6, r6, r5 add r8, r8, r5 @@ -55757,7 +56775,7 @@ _02208E70: mov r0, r8 mov r2, r4 add r1, r1, r7 - bl MOD04_02209F90 + bl MOD04_memcpy add r0, r7, r4 and r7, r0, sb subs r6, r6, r4 @@ -55774,6 +56792,7 @@ _02208EB4: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _02208EC0: .word 0x000001FF + arm_func_end MOD04_02208DCC arm_func_start MOD04_02208EC4 MOD04_02208EC4: ; 0x02208EC4 @@ -55840,6 +56859,7 @@ _02208F98: mvn r0, #0 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02208EC4 arm_func_start MOD04_02208FA4 MOD04_02208FA4: ; 0x02208FA4 @@ -55873,6 +56893,7 @@ _02209008: mvn r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_02208FA4 arm_func_start MOD04_02209014 MOD04_02209014: ; 0x02209014 @@ -55934,6 +56955,7 @@ _022090D8: mvn r0, #0 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end MOD04_02209014 arm_func_start MOD04_022090E4 MOD04_022090E4: ; 0x022090E4 @@ -55968,6 +56990,7 @@ _0220913C: add r0, r0, r3 ldrsb r0, [r0, #4] bx lr + arm_func_end MOD04_022090E4 arm_func_start MOD04_02209158 MOD04_02209158: ; 0x02209158 @@ -55999,6 +57022,7 @@ _0220919C: ldmfd sp!, {pc} .align 2, 0 _022091B8: .word 0x000001FF + arm_func_end MOD04_02209158 arm_func_start MOD04_022091BC MOD04_022091BC: ; 0x022091BC @@ -56027,6 +57051,7 @@ _02209204: ldmfd sp!, {pc} .align 2, 0 _02209214: .word UNK04_02211914 + arm_func_end MOD04_022091BC arm_func_start MOD04_02209218 MOD04_02209218: ; 0x02209218 @@ -56067,6 +57092,7 @@ _0220928C: ldmia sp!, {r4, r5, pc} .align 2, 0 _0220929C: .word UNK04_02211914 + arm_func_end MOD04_02209218 arm_func_start MOD04_022092A0 MOD04_022092A0: ; 0x022092A0 @@ -56111,6 +57137,7 @@ _02209324: ldmia sp!, {r4, r5, pc} .align 2, 0 _02209334: .word UNK04_02211908 + arm_func_end MOD04_022092A0 arm_func_start MOD04_02209338 MOD04_02209338: ; 0x02209338 @@ -56147,6 +57174,7 @@ _02209384: ldmia sp!, {r4, pc} .align 2, 0 _022093AC: .word UNK04_02211904 + arm_func_end MOD04_02209338 arm_func_start MOD04_022093B0 MOD04_022093B0: ; 0x022093B0 @@ -56178,6 +57206,7 @@ _022093FC: ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _0220940C: .word UNK04_02211904 + arm_func_end MOD04_022093B0 arm_func_start MOD04_02209410 MOD04_02209410: ; 0x02209410 @@ -56192,6 +57221,7 @@ MOD04_02209410: ; 0x02209410 ldmia sp!, {r4, pc} .align 2, 0 _02209434: .word UNK04_02211904 + arm_func_end MOD04_02209410 arm_func_start MOD04_02209438 MOD04_02209438: ; 0x02209438 @@ -56228,7 +57258,7 @@ _02209478: streq r1, [r0] beq _02209918 mov r1, #0x58 - bl MOD04_02209FA8 + bl MOD04_memclear ldr r1, _022099A4 ; =UNK04_02211924 mov r0, #0x420 ldr r2, [r1] @@ -56242,13 +57272,13 @@ _02209478: streq r1, [r0] beq _02209918 mov r1, #0x420 - bl MOD04_02209FA8 + bl MOD04_memclear ldr r1, [r7, #0x30] mov r0, fp str r5, [r1, #0x18] ldr r1, [r7, #0x30] str r4, [r1, #0xc] - bl MOD04_02209FBC + bl MOD04_strlen mov r4, r0 cmp r4, #7 ldrle r0, _022099A0 ; =UNK04_02211908 @@ -56261,13 +57291,13 @@ _02209478: mov r0, fp mov r2, sl str r3, [r7, #0x28] - bl MOD04_02209FC8 + bl MOD04_strnicmp cmp r0, #0 beq _02209580 ldr r1, _022099AC ; =UNK04_0220FA80 mov r0, fp mov r2, #8 - bl MOD04_02209FC8 + bl MOD04_strnicmp cmp r0, #0 ldrne r0, _022099A0 ; =UNK04_02211908 movne r1, #4 @@ -56301,7 +57331,7 @@ _022095B4: sub r0, sb, #1 mov r1, r4 add r0, r8, r0 - bl MOD04_0220B8E4 + bl MOD04_urltostr mov r0, r0, lsl #0x18 movs r0, r0, asr #0x18 ldrmi r0, _022099A0 ; =UNK04_02211908 @@ -56349,7 +57379,7 @@ _0220962C: beq _02209918 mov r1, fp mov r2, sl - bl MOD04_02209F90 + bl MOD04_memcpy mov r6, #0 ldr r0, [sp, #4] mov sb, r6 @@ -56368,7 +57398,7 @@ _022096AC: sub r0, r6, #1 mov r1, fp add r0, r8, r0 - bl MOD04_0220B8E4 + bl MOD04_urltostr mov r0, r0, lsl #0x18 mov r3, r0, asr #0x18 add r1, sl, sb @@ -56492,7 +57522,7 @@ _02209840: streq r1, [r0] beq _02209918 mov r1, #0x830 - bl MOD04_02209FA8 + bl MOD04_memclear ldr r1, _022099A4 ; =UNK04_02211924 add r0, r4, #1 ldr r2, [r1] @@ -56510,7 +57540,7 @@ _02209840: ldr r1, [r7, #0x24] mov r2, r4 add r1, r1, sl - bl MOD04_02209F90 + bl MOD04_memcpy ldr r0, [r7, #0x20] mov r1, #0 ldr r0, [r0, #0x800] @@ -56519,7 +57549,7 @@ _022098E4: ldr r1, _022099B8 ; =UNK04_0220BDE4 add r0, r7, #0x44 mov r2, #0x14 - bl MOD04_02209F90 + bl MOD04_memcpy ldr r0, [sp, #0x34] ldr r1, [sp, #0x30] str r0, [r7, #0x2c] @@ -56578,6 +57608,7 @@ _022099B0: .word 0x000001BB _022099B4: .word 0x0000FFFF _022099B8: .word UNK04_0220BDE4 _022099BC: .word UNK04_02211904 + arm_func_end MOD04_02209438 arm_func_start MOD04_022099C0 MOD04_022099C0: ; 0x022099C0 @@ -56624,6 +57655,7 @@ _02209A54: strb r4, [r2, r1] add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_022099C0 arm_func_start MOD04_02209A68 MOD04_02209A68: ; 0x02209A68 @@ -56641,6 +57673,7 @@ _02209A88: str r2, [r1] ldr r0, [r0, #4] bx lr + arm_func_end MOD04_02209A68 arm_func_start MOD04_02209A98 MOD04_02209A98: ; 0x02209A98 @@ -56691,7 +57724,7 @@ _02209AE0: _02209B44: ldr r0, _02209BB4 ; =UNK04_0220FA8C mov r1, r6 - bl MOD04_0220A038 + bl MOD04_strcmp cmp r0, #0 addne sp, sp, #4 mvnne r0, #0 @@ -56719,6 +57752,7 @@ _02209B44: _02209BAC: .word UNK04_02211904 _02209BB0: .word UNK04_02211924 _02209BB4: .word UNK04_0220FA8C + arm_func_end MOD04_02209A98 arm_func_start MOD04_02209BB8 MOD04_02209BB8: ; 0x02209BB8 @@ -56794,6 +57828,7 @@ _02209CB8: mvn r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end MOD04_02209BB8 arm_func_start MOD04_02209CC4 MOD04_02209CC4: ; 0x02209CC4 @@ -56833,6 +57868,7 @@ _02209D28: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02209D3C: .word UNK04_02211904 + arm_func_end MOD04_02209CC4 arm_func_start MOD04_02209D40 MOD04_02209D40: ; 0x02209D40 @@ -56846,6 +57882,7 @@ MOD04_02209D40: ; 0x02209D40 bl SOC_Shutdown add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_02209D40 arm_func_start MOD04_02209D68 MOD04_02209D68: ; 0x02209D68 @@ -56869,6 +57906,7 @@ MOD04_02209D68: ; 0x02209D68 ldmia sp!, {r4, pc} .align 2, 0 _02209DB0: .word 0xFFFFFC16 + arm_func_end MOD04_02209D68 arm_func_start MOD04_02209DB4 MOD04_02209DB4: ; 0x02209DB4 @@ -56892,6 +57930,7 @@ MOD04_02209DB4: ; 0x02209DB4 ldmia sp!, {r4, pc} .align 2, 0 _02209DFC: .word 0xFFFFFC16 + arm_func_end MOD04_02209DB4 arm_func_start MOD04_02209E00 MOD04_02209E00: ; 0x02209E00 @@ -56928,6 +57967,7 @@ _02209E6C: ldmia sp!, {r4, r5, pc} .align 2, 0 _02209E78: .word 0xFFFFFC16 + arm_func_end MOD04_02209E00 arm_func_start MOD04_02209E7C MOD04_02209E7C: ; 0x02209E7C @@ -56956,6 +57996,7 @@ _02209EB4: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02209ED0: .word 0x00002710 + arm_func_end MOD04_02209E7C arm_func_start MOD04_02209ED4 MOD04_02209ED4: ; 0x02209ED4 @@ -56995,6 +58036,7 @@ _02209F4C: ldmia sp!, {r4, r5, pc} .align 2, 0 _02209F58: .word MOD04_02209F84 + arm_func_end MOD04_02209ED4 arm_func_start MOD04_02209F5C MOD04_02209F5C: ; 0x02209F5C @@ -57009,41 +58051,46 @@ MOD04_02209F5C: ; 0x02209F5C ldmfd sp!, {pc} .align 2, 0 _02209F80: .word UNK04_02211A24 + arm_func_end MOD04_02209F5C arm_func_start MOD04_02209F84 MOD04_02209F84: ; 0x02209F84 ands r1, r0, #0x8000 bicne r0, r0, #0x8000 bx lr + arm_func_end MOD04_02209F84 - arm_func_start MOD04_02209F90 -MOD04_02209F90: ; 0x02209F90 - ldr ip, _02209FA4 ; =0x020CE3E0 + arm_func_start MOD04_memcpy +MOD04_memcpy: ; 0x02209F90 + ldr ip, _02209FA4 ; =MI_CpuCopy8 mov r3, r0 mov r0, r1 mov r1, r3 bx ip .align 2, 0 -_02209FA4: .word 0x020CE3E0 +_02209FA4: .word MI_CpuCopy8 + arm_func_end MOD04_memcpy - arm_func_start MOD04_02209FA8 -MOD04_02209FA8: ; 0x02209FA8 - ldr ip, _02209FB8 ; =0x020CE34C + arm_func_start MOD04_memclear +MOD04_memclear: ; 0x02209FA8 + ldr ip, _02209FB8 ; =MI_CpuFill8 mov r2, r1 mov r1, #0 bx ip .align 2, 0 -_02209FB8: .word 0x020CE34C +_02209FB8: .word MI_CpuFill8 + arm_func_end MOD04_memclear - arm_func_start MOD04_02209FBC -MOD04_02209FBC: ; 0x02209FBC - ldr ip, _02209FC4 ; =0x020DE0BC + arm_func_start MOD04_strlen +MOD04_strlen: ; 0x02209FBC + ldr ip, _02209FC4 ; =STD_GetStringLength bx ip .align 2, 0 -_02209FC4: .word 0x020DE0BC +_02209FC4: .word STD_GetStringLength + arm_func_end MOD04_strlen - arm_func_start MOD04_02209FC8 -MOD04_02209FC8: ; 0x02209FC8 + arm_func_start MOD04_strnicmp +MOD04_strnicmp: ; 0x02209FC8 cmp r2, #0 ble _0220A030 _02209FD0: @@ -57078,13 +58125,15 @@ _0220A01C: _0220A030: mov r0, r2 bx lr + arm_func_end MOD04_strnicmp - arm_func_start MOD04_0220A038 -MOD04_0220A038: ; 0x0220A038 - ldr ip, _0220A040 ; =0x020DE090 + arm_func_start MOD04_strcmp +MOD04_strcmp: ; 0x0220A038 + ldr ip, _0220A040 ; =STD_CompareString bx ip .align 2, 0 -_0220A040: .word 0x020DE090 +_0220A040: .word STD_CompareString + arm_func_end MOD04_strcmp arm_func_start MOD04_0220A044 MOD04_0220A044: ; 0x0220A044 @@ -57299,7 +58348,7 @@ _0220A344: str r0, [sp, #0x108] str r0, [sp, #8] ldr r0, [r4, #0x24] - bl MOD04_02209FBC + bl MOD04_strlen mov sb, r0 ldr r0, [sp, #0x34] str r0, [sp, #4] @@ -57439,7 +58488,7 @@ _0220A548: beq _0220A660 _0220A580: ldr r0, [sb, #8] - bl MOD04_02209FBC + bl MOD04_strlen cmp r0, #0 beq _0220A5B8 str r0, [sp] @@ -57464,7 +58513,7 @@ _0220A5B8: cmp r0, #0 beq _0220A284 ldr r0, [sb, #0xc] - bl MOD04_02209FBC + bl MOD04_strlen cmp r0, #0 beq _0220A618 str r0, [sp] @@ -57528,7 +58577,7 @@ _0220A6B4: _0220A6C8: ldr r0, [sb, #8] add sl, sl, #0x16 - bl MOD04_02209FBC + bl MOD04_strlen add r0, r0, #0x29 add sl, sl, r0 ldr r0, [sb, #0x14] @@ -57585,11 +58634,11 @@ _0220A79C: beq _0220A7E0 _0220A7A4: ldr r0, [sb, #8] - bl MOD04_0220BA58 + bl MOD04_url_strlen add r0, sl, r0 add sl, r0, #1 ldr r0, [sb, #0xc] - bl MOD04_0220BA58 + bl MOD04_url_strlen add sl, sl, r0 ldr r0, [r4, #0x38] ldr r0, [r0] @@ -57704,7 +58753,7 @@ _0220A8EC: cmp r0, #0 beq _0220A284 ldr r0, [sb, #8] - bl MOD04_02209FBC + bl MOD04_strlen cmp r0, #0 beq _0220A9A4 str r0, [sp] @@ -57822,7 +58871,7 @@ _0220AB10: _0220AB24: ldrsb r1, [r1, sb] mov r0, r6 - bl MOD04_0220B9CC + bl MOD04_strtourl str r0, [sp, #0x10c] cmp r0, #0 beq _0220AB64 @@ -57862,7 +58911,7 @@ _0220AB78: _0220ABB8: ldrsb r1, [r1, sb] mov r0, r6 - bl MOD04_0220B9CC + bl MOD04_strtourl str r0, [sp, #0x10c] cmp r0, #0 beq _0220ABF8 @@ -58033,7 +59082,7 @@ _0220ADA0: ldr r0, _0220B04C ; =UNK04_02211A44 ldr r1, _0220B058 ; =UNK04_0220FB60 ldr r2, [sp, #0x44] - bl MOD04_02209FC8 + bl MOD04_strnicmp cmp r0, #0 bne _0220B348 ldr r0, _0220B04C ; =UNK04_02211A44 @@ -58273,7 +59322,7 @@ _0220B1B4: cmp r1, #0 beq _0220B348 ldr r0, _0220B04C ; =UNK04_02211A44 - bl MOD04_0220B8E4 + bl MOD04_urltostr str r0, [sp, #0x1c] cmp r0, #0 bge _0220B1EC @@ -58429,6 +59478,7 @@ _0220B3E8: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _0220B400: .word UNK04_02211908 + arm_func_end MOD04_0220A044 arm_func_start MOD04_0220B404 MOD04_0220B404: ; 0x0220B404 @@ -58469,6 +59519,7 @@ _0220B45C: mov r0, r7 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end MOD04_0220B404 arm_func_start MOD04_0220B490 MOD04_0220B490: ; 0x0220B490 @@ -58497,7 +59548,7 @@ _0220B4BC: mov r1, r8 mov r2, r6 add r0, r0, r3 - bl MOD04_02209F90 + bl MOD04_memcpy ldr r0, [sb] add r8, r8, r6 add r0, r0, r6 @@ -58527,6 +59578,7 @@ _0220B54C: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _0220B558: .word UNK04_02211A44 + arm_func_end MOD04_0220B490 arm_func_start MOD04_0220B55C MOD04_0220B55C: ; 0x0220B55C @@ -58576,6 +59628,7 @@ _0220B5EC: .align 2, 0 _0220B5FC: .word UNK04_02211914 _0220B600: .word UNK04_02211910 + arm_func_end MOD04_0220B55C arm_func_start MOD04_0220B604 MOD04_0220B604: ; 0x0220B604 @@ -58617,6 +59670,7 @@ _0220B674: _0220B680: mvn r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} + arm_func_end MOD04_0220B604 arm_func_start MOD04_0220B688 MOD04_0220B688: ; 0x0220B688 @@ -58654,6 +59708,7 @@ _0220B6F0: mov r0, lr add sp, sp, #4 ldmfd sp!, {pc} + arm_func_end MOD04_0220B688 arm_func_start MOD04_0220B704 MOD04_0220B704: ; 0x0220B704 @@ -58696,6 +59751,7 @@ _0220B76C: beq _0220B714 mvn r0, #0 ldmia sp!, {r4, pc} + arm_func_end MOD04_0220B704 arm_func_start MOD04_0220B788 MOD04_0220B788: ; 0x0220B788 @@ -58750,6 +59806,7 @@ _0220B81C: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _0220B840: .word UNK04_0220BE70 + arm_func_end MOD04_0220B788 arm_func_start MOD04_0220B844 MOD04_0220B844: ; 0x0220B844 @@ -58800,9 +59857,10 @@ _0220B8D0: _0220B8DC: mov r0, r5 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_0220B844 - arm_func_start MOD04_0220B8E4 -MOD04_0220B8E4: ; 0x0220B8E4 + arm_func_start MOD04_urltostr +MOD04_urltostr: ; 0x0220B8E4 stmdb sp!, {r4, r5, r6, lr} cmp r1, #8 mvngt r0, #0 @@ -58870,9 +59928,10 @@ _0220B9B8: _0220B9C4: mov r0, r4 ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD04_urltostr - arm_func_start MOD04_0220B9CC -MOD04_0220B9CC: ; 0x0220B9CC + arm_func_start MOD04_strtourl +MOD04_strtourl: ; 0x0220B9CC cmp r1, #0x20 moveq r1, #0x2b streqb r1, [r0] @@ -58912,9 +59971,10 @@ _0220BA1C: strb r1, [r0, #2] mov r0, #3 bx lr + arm_func_end MOD04_strtourl - arm_func_start MOD04_0220BA58 -MOD04_0220BA58: ; 0x0220BA58 + arm_func_start MOD04_url_strlen +MOD04_url_strlen: ; 0x0220BA58 ldrsb r1, [r0], #1 mov r2, #0 cmp r1, #0 @@ -58949,6 +60009,7 @@ _0220BAAC: _0220BAB8: mov r0, r2 bx lr + arm_func_end MOD04_url_strlen .section .rodata .global UNK_0220BAC4 @@ -62817,6 +63878,8 @@ UNK04_022118D4: ; 0x022118D4 UNK04_022118EC: ; 0x022118EC .space 0x18 +; file boundary + .global UNK04_02211904 UNK04_02211904: ; 0x02211904 .space 0x4 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index d9c1c402..c208ee4a 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -22372,13 +22372,13 @@ MOD06_02244758: ; 0x02244758 ldr r1, _02244768 ; =0x0000083E add r2, r0, #0 add r1, r2, r1 - ldr r3, _0224476C ; =0x020CE3E0 + ldr r3, _0224476C ; =MI_CpuCopy8 add r0, #0x3e mov r2, #0x1c bx r3 nop _02244768: .word 0x0000083E -_0224476C: .word 0x020CE3E0 +_0224476C: .word MI_CpuCopy8 thumb_func_start MOD06_02244770 MOD06_02244770: ; 0x02244770 diff --git a/arm9/src/filesystem.c b/arm9/src/filesystem.c new file mode 100644 index 00000000..c67b689d --- /dev/null +++ b/arm9/src/filesystem.c @@ -0,0 +1,415 @@ +#include "global.h" +#include "FS_file.h" + +void * FUN_02016998(u32 heap_id, u32 size); +void * FUN_020169D8(u32 heap_id, u32 size); +void FUN_02016A18(void * ptr); + +static char * UNK_021058A0[] = { + "battle/skill/waza_seq.narc", + "battle/skill/sub_seq.narc", + "poketool/personal/personal.narc", + "poketool/personal/growtbl.narc", + "poketool/pokegra/pokegra.narc", + "poketool/pokegra/height.narc", + "poketool/trgra/trbgra.narc", + "battle/graphic/batt_bg.narc", + "wazaeffect/we.arc", + "poketool/waza/waza_tbl.narc", + "fielddata/script/scr_seq_release.narc", + "msgdata/scenario/scr_msg.narc", + "graphic/poketch.narc", + "graphic/bag_gra.narc", + "graphic/font.narc", + "itemtool/itemdata/item_data.narc", + "itemtool/itemdata/item_icon.narc", + "graphic/tmap_gra.narc", + "graphic/box.narc", + "poketool/icongra/poke_icon.narc", + "graphic/plist_gra.narc", + "wazaeffect/effectclact/wechar.narc", + "wazaeffect/effectclact/wepltt.narc", + "wazaeffect/effectclact/wecell.narc", + "wazaeffect/effectclact/wecellanm.narc", + "graphic/imageclip.narc", + "msgdata/msg.narc", + "battle/graphic/batt_obj.narc", + "data/underg_radar.narc", + "wazaeffect/effectdata/waza_particle.narc", + "battle/skill/be_seq.narc", + "data/namein.narc", + "fielddata/eventdata/zone_event_release.narc", + "poketool/personal/wotbl.narc", + "poketool/personal/evo.narc", + "graphic/fontoam.narc", + "graphic/field_board.narc", + "fielddata/encountdata/d_enc_data.narc", + "graphic/winframe.narc", + "graphic/pst_gra.narc", + "fielddata/build_model/build_model.narc", + "fielddata/mapmatrix/map_matrix.narc", + "fielddata/areadata/area_data.narc", + "fielddata/areadata/area_build_model/area_build.narc", + "fielddata/areadata/area_map_tex/map_tex_set.narc", + "contest/graphic/contest_bg.narc", + "contest/graphic/contest_obj.narc", + "data/ugeffect_obj_graphic.narc", + "demo/title/titledemo.narc", + "fielddata/areadata/area_move_model/move_model_list.narc", + "data/ug_trap.narc", + "graphic/trainer_case.narc", + "data/ug_fossil.narc", + "graphic/ntag_gra.narc", + "data/tradelist.narc", + "data/ug_parts.narc", + "graphic/opening.narc", + "poketool/trainer/trdata.narc", + "poketool/trainer/trpoke.narc", + "poketool/trmsg/trtbl.narc", + "poketool/trgra/trfgra.narc", + "particledata/particledata.narc", + "graphic/shop_gra.narc", + "wazaeffect/we_sub.narc", + "data/ug_anim.narc", + "data/weather_sys.narc", + "graphic/menu_gra.narc", + "fielddata/land_data/land_data_release.narc", + "itemtool/itemdata/nuts_data.narc", + "resource/eng/zukan/zukan.narc", + "poketool/pokefoot/pokefoot.narc", + "fielddata/areadata/area_build_model/areabm_texset.narc", + "battle/graphic/b_plist_gra.narc", + "graphic/config_gra.narc", + "graphic/unionroom.narc", + "application/zukanlist/zkn_data/zukan_data.narc", + "graphic/pmsi.narc", + "battle/graphic/b_bag_gra.narc", + "graphic/oekaki.narc", + "graphic/mail_gra.narc", + "graphic/f_note_gra.narc", + "data/mmodel/mmodel.narc", + "graphic/ev_pokeselect.narc", + "graphic/poru_gra.narc", + "graphic/touch_subwindow.narc", + "graphic/fld_comact.narc", + "graphic/record.narc", + "graphic/porudemo.narc", + "graphic/poruact.narc", + "data/wifinote.narc", + "contest/data/contest_data.narc", + "application/custom_ball/data/cb_data.narc", + "data/wifip2pmatch.narc", + "graphic/demo_trade.narc", + "pokeanime/poke_anm.narc", + "graphic/mysign.narc", + "fielddata/mm_list/move_model_list.narc", + "data/field_cutin.narc", + "data/demo_climax.narc", + "wazaeffect/effectdata/ball_particle.narc", + "wazaeffect/pt_debug/debug_particle.narc", + "graphic/dendou_pc.narc", + "application/wifi_earth/wifi_earth_place.narc", + "battle/tr_ai/tr_ai_seq.narc", + "graphic/worldtrade.narc", + "graphic/dendou_demo.narc", + "arc/encdata_ex.narc", + "data/mmodel/fldeff.narc", + "battle/graphic/vs_demo_gra.narc", + "poketool/pokezukan.narc", + "arc/bm_anime.narc", + "arc/bm_anime_list.narc", + "graphic/field_encounteffect.narc", + "graphic/waza_oshie_gra.narc", + "poketool/pokeanm/pokeanm.narc", + "fielddata/pokemon_trade/fld_trade.narc", + "graphic/mystery.narc", + "poketool/pokegra/otherpoke.narc", + "demo/egg/data/egg_data.narc", + "demo/egg/data/particle/egg_demo_particle.narc", + "arc/ship_demo.narc", + "poketool/pokegra/height_o.narc", + "graphic/nutmixer.narc", + "graphic/btower.narc", + "demo/shinka/data/particle/shinka_demo_particle.narc", + "demo/intro/intro.narc", + "arc/tv.narc", + "graphic/ending.narc", + "demo/title/op_demo.narc", + "application/wifi_earth/wifi_earth.narc", + "graphic/ranking.narc", + "arc/ppark.narc", + "demo/syoujyou/syoujyou.narc", + "data/slot.narc", + "battle/b_tower/btdtr.narc", + "battle/b_tower/btdpm.narc", + "demo/intro/intro_tv.narc", + "poketool/trmsg/trtblofs.narc", + "poketool/pokegra/poke_yofs.narc", + "application/zukanlist/zkn_data/zukan_enc_diamond.narc", + "application/zukanlist/zkn_data/zukan_enc_pearl.narc", + "graphic/hiden_effect.narc", + "poketool/pokegra/poke_shadow.narc", + "fielddata/encountdata/p_enc_data.narc", + "poketool/pokegra/poke_shadow_ofx.narc", + "poketool/shinzukan.narc", +}; + +THUMB_FUNC void ReadNARCFile(void * dest, const char * path, s32 file_idx, u32 offset, u32 size) +{ + FSFile file; + register u32 chunk_starts[3]; + u32 btnf_size = 0; + u32 chunk_size = 0; + u32 file_start = 0; + u32 file_end = 0; + u16 num_files = 0; + + FS_InitFile(&file); + FS_OpenFile(&file, path); + + FS_SeekFile(&file, 12, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 2); + chunk_starts[0] = chunk_size; + FS_SeekFile(&file, chunk_starts[0] + 4, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 4); + FS_ReadFile(&file, &num_files, 2); + if (num_files <= file_idx) + ErrorHandling(); + chunk_starts[1] = chunk_starts[0] + chunk_size; + FS_SeekFile(&file, chunk_starts[1] + 4, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 4); + btnf_size = chunk_size; + FS_SeekFile(&file, chunk_starts[0] + 12 + 8 * file_idx, FS_SEEK_SET); + FS_ReadFile(&file, &file_start, 4); + FS_ReadFile(&file, &file_end, 4); + chunk_starts[2] = chunk_starts[1] + btnf_size; + FS_SeekFile(&file, chunk_starts[2] + 8 + file_start + offset, FS_SEEK_SET); + if (size == 0) + chunk_size = file_end - file_start; + else + chunk_size = size; + if (chunk_size == 0) + ErrorHandling(); + FS_ReadFile(&file, dest, chunk_size); + FS_CloseFile(&file); +} + +THUMB_FUNC void * LoadFileIntoMemory(const char * path, s32 file_idx, u32 heap_id, u32 offset, u32 size, BOOL r4) +{ + FSFile file; + register u32 chunk_starts[3]; + u32 btnf_size = 0; + u32 chunk_size = 0; + u32 file_start = 0; + u32 file_end = 0; + u16 num_files = 0; + void * dest = NULL; + + FS_InitFile(&file); + FS_OpenFile(&file, path); + + FS_SeekFile(&file, 12, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 2); + chunk_starts[0] = chunk_size; + FS_SeekFile(&file, chunk_starts[0] + 4, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 4); + FS_ReadFile(&file, &num_files, 2); + if (num_files <= file_idx) + ErrorHandling(); + chunk_starts[1] = chunk_starts[0] + chunk_size; + FS_SeekFile(&file, chunk_starts[1] + 4, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 4); + btnf_size = chunk_size; + FS_SeekFile(&file, chunk_starts[0] + 12 + 8 * file_idx, FS_SEEK_SET); + FS_ReadFile(&file, &file_start, 4); + FS_ReadFile(&file, &file_end, 4); + chunk_starts[2] = chunk_starts[1] + btnf_size; + FS_SeekFile(&file, chunk_starts[2] + 8 + file_start + offset, FS_SEEK_SET); + if (size == 0) + chunk_size = file_end - file_start; + else + chunk_size = size; + if (chunk_size == 0) + ErrorHandling(); + switch (r4) + { + case 0: + dest = FUN_02016998(heap_id, chunk_size); + break; + default: + dest = FUN_020169D8(heap_id, chunk_size); + break; + } + FS_ReadFile(&file, dest, chunk_size); + FS_CloseFile(&file); + return dest; +} + +THUMB_FUNC void LoadFromNARC(void * dest, s32 narc_id, s32 file_id) +{ + ReadNARCFile(dest, UNK_021058A0[narc_id], file_id, 0, 0); +} + +THUMB_FUNC void * LoadFromNarc_2(s32 narc_id, s32 file_id, u32 heap_id) +{ + return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, 0, 0, FALSE); +} + +THUMB_FUNC void * FUN_02006528(s32 narc_id, s32 file_id, u32 heap_id) +{ + return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, 0, 0, TRUE); +} + +THUMB_FUNC void FUN_02006548(void * dest, s32 narc_id, s32 file_id, u32 offset, u32 size) +{ + ReadNARCFile(dest, UNK_021058A0[narc_id], file_id, offset, size); +} + +THUMB_FUNC void * FUN_02006564(s32 narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size) +{ + return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, offset, size, FALSE); +} + +THUMB_FUNC void * FUN_02006584(s32 narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size) +{ + return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, offset, size, TRUE); +} + +THUMB_FUNC u32 LoadFromNARC_7(s32 narc_id, s32 file_idx) +{ + FSFile file; + register u32 chunk_starts[3]; + u32 btnf_size = 0; + u32 chunk_size = 0; + u32 file_start = 0; + u32 file_end = 0; + u16 num_files = 0; + + FS_InitFile(&file); + FS_OpenFile(&file, UNK_021058A0[narc_id]); + + FS_SeekFile(&file, 12, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 2); + chunk_starts[0] = chunk_size; + FS_SeekFile(&file, chunk_starts[0] + 4, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 4); + FS_ReadFile(&file, &num_files, 2); + if (num_files <= file_idx) + ErrorHandling(); + chunk_starts[1] = chunk_starts[0] + chunk_size; + FS_SeekFile(&file, chunk_starts[1] + 4, FS_SEEK_SET); + FS_ReadFile(&file, &chunk_size, 4); + btnf_size = chunk_size; + FS_SeekFile(&file, chunk_starts[0] + 12 + 8 * file_idx, FS_SEEK_SET); + FS_ReadFile(&file, &file_start, 4); + FS_ReadFile(&file, &file_end, 4); + chunk_starts[2] = chunk_starts[1] + btnf_size; + FS_SeekFile(&file, chunk_starts[2] + 8 + file_start + 0, FS_SEEK_SET); + chunk_size = file_end - file_start; + if (chunk_size == 0) + ErrorHandling(); + // Bug: File is never closed + return chunk_size; +} + +struct NARC +{ + FSFile file; + u32 btaf_start; + u32 gmif_start; + u16 num_files; +}; + +THUMB_FUNC struct NARC * FUN_02006670(s32 narc_id, u32 heap_id) +{ + struct NARC * narc = (struct NARC *)FUN_02016998(heap_id, sizeof(struct NARC)); + u32 btnf_start; + u32 chunk_size; + if (narc != NULL) + { + narc->btaf_start = 0; + FS_InitFile(&narc->file); + FS_OpenFile(&narc->file, UNK_021058A0[narc_id]); + FS_SeekFile(&narc->file, 12, FS_SEEK_SET); + FS_ReadFile(&narc->file, &narc->btaf_start, 2); + FS_SeekFile(&narc->file, narc->btaf_start + 4, FS_SEEK_SET); + FS_ReadFile(&narc->file, &chunk_size, 4); + FS_ReadFile(&narc->file, &narc->num_files, 2); + btnf_start = narc->btaf_start + chunk_size; + FS_SeekFile(&narc->file, btnf_start + 4, FS_SEEK_SET); + FS_ReadFile(&narc->file, &chunk_size, 4); + narc->gmif_start = btnf_start + chunk_size; + } + return narc; +} + +THUMB_FUNC void FUN_020066F4(struct NARC * narc) +{ + FS_CloseFile(&narc->file); + FUN_02016A18(narc); // free to heap +} + +THUMB_FUNC void * FUN_02006704(struct NARC * narc, u32 file_id, u32 heap_id) +{ + u32 file_start; + u32 file_end; + void * dest; + if (narc->num_files <= file_id) + ErrorHandling(); + FS_SeekFile(&narc->file, narc->btaf_start + 12 + 8 * file_id, FS_SEEK_SET); + FS_ReadFile(&narc->file, &file_start, 4); + FS_ReadFile(&narc->file, &file_end, 4); + FS_SeekFile(&narc->file, narc->gmif_start + 8 + file_start, FS_SEEK_SET); + dest = FUN_02016998(heap_id, file_end - file_start); + if (dest != NULL) + { + FS_ReadFile(&narc->file, dest, file_end - file_start); + } + return dest; +} + +THUMB_FUNC void FUN_02006774(struct NARC * narc, u32 file_id, void * dest) +{ + u32 file_start; + u32 file_end; + if (narc->num_files <= file_id) + ErrorHandling(); + FS_SeekFile(&narc->file, narc->btaf_start + 12 + 8 * file_id, FS_SEEK_SET); + FS_ReadFile(&narc->file, &file_start, 4); + FS_ReadFile(&narc->file, &file_end, 4); + FS_SeekFile(&narc->file, narc->gmif_start + 8 + file_start, FS_SEEK_SET); + FS_ReadFile(&narc->file, dest, file_end - file_start); +} + +THUMB_FUNC u32 FUN_020067D0(struct NARC * narc, u32 file_id) +{ + u32 file_start; + u32 file_end; + if (narc->num_files <= file_id) + ErrorHandling(); + FS_SeekFile(&narc->file, narc->btaf_start + 12 + 8 * file_id, FS_SEEK_SET); + FS_ReadFile(&narc->file, &file_start, 4); + FS_ReadFile(&narc->file, &file_end, 4); + return file_end - file_start; +} + +THUMB_FUNC void FUN_02006814(struct NARC * narc, u32 file_id, u32 pos, u32 size, void * dest) +{ + u32 file_start; + if (narc->num_files <= file_id) + ErrorHandling(); + FS_SeekFile(&narc->file, narc->btaf_start + 12 + 8 * file_id, FS_SEEK_SET); + FS_ReadFile(&narc->file, &file_start, 4); + FS_SeekFile(&narc->file, narc->gmif_start + 8 + file_start + pos, FS_SEEK_SET); + FS_ReadFile(&narc->file, dest, size); +} + +THUMB_FUNC void FUN_02006864(struct NARC * narc, u32 size, void * dest) +{ + FS_ReadFile(&narc->file, dest, size); +} + +THUMB_FUNC u16 FUN_02006874(struct NARC * narc) +{ + return narc->num_files; +} |