summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--arm9/asm/filesystem.s1546
-rw-r--r--arm9/global.inc4
-rw-r--r--arm9/lib/include/FS_file.h54
-rw-r--r--arm9/modules/04/asm/arm_04.s1229
-rw-r--r--arm9/modules/06/asm/module_06.s4
-rw-r--r--arm9/src/filesystem.c415
7 files changed, 1595 insertions, 1658 deletions
diff --git a/Makefile b/Makefile
index d9022b38..020ed45a 100644
--- a/Makefile
+++ b/Makefile
@@ -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;
+}